Javascript 采摘多个属性
我试图从AngularJS中的一个对象创建一个数组,用于ui引导的typeahead 我可以从对象“蝙蝠侠”中提取一个值,但我需要能够组合多个属性来创建一个新的数组元素“蝙蝠侠韦恩,布鲁斯”。我尝试了$scope.heroList=..pulk$scope.heroes,'name'+'lname'+','+'fname'+;但都是空的 这是一本书 我需要一个最终数组,如下所示:Javascript 采摘多个属性,javascript,angularjs,lodash,Javascript,Angularjs,Lodash,我试图从AngularJS中的一个对象创建一个数组,用于ui引导的typeahead 我可以从对象“蝙蝠侠”中提取一个值,但我需要能够组合多个属性来创建一个新的数组元素“蝙蝠侠韦恩,布鲁斯”。我尝试了$scope.heroList=..pulk$scope.heroes,'name'+'lname'+','+'fname'+;但都是空的 这是一本书 我需要一个最终数组,如下所示: $scope.heroList = ['Batman (Wayne, Bruce]', 'Daredevil (Mu
$scope.heroList = ['Batman (Wayne, Bruce]', 'Daredevil (Murdoch, Jack'), ... ];
以下是我的javascript:
var app = angular.module('app',[]);
app.controller('MainController', function($scope){
$scope.heroes = [
{
id: 1,
name: 'Iron Man',
fname: 'Tony',
lname: 'Stark',
location: 'Stark Tower',
comic: 'Marvel'
},
{
id: 2,
name: 'Batman',
fname: 'Bruce',
lname: 'Wayne',
location: 'Bat Cave',
comic: 'DC'
},
{
id: 3,
name: 'Superman',
fname: 'Clark',
lname: 'Kent',
location: 'Metroplis',
comic: 'DC'
},
{
id: 1,
name: 'Daredevil',
fname: 'Jack',
lname: 'Murdock',
location: 'Court Room',
comic: 'Marvel'
},
{
id: 5,
name: 'Flash',
fname: 'Barry',
lname: 'Allen',
location: 'Speedline',
comic: 'DC'
},
{
id: 6,
name: 'Hulk',
fname: 'Bruce',
lname: 'Banner',
location: 'Labratory',
comic: 'Marvel'
},
{
id: 7,
name: 'Hawkeye',
fname: 'Clint',
lname: 'Barton',
location: 'Nest',
comic: 'Marvel'
},
{
id: 8,
name: 'Thor',
fname: 'Donald',
lname: 'Blake',
location: 'Asgard',
comic: 'Marvel'
}
];
$scope.heroList = _.pluck($scope.heroes, 'name');
//$scope.heroList = _.pluck($scope.heroes, 'name' + '(' + 'lname' + ', ' + 'fname' + ')' );
}); // end MainController
您可以使用回调方法 使用 我还建议您使用
尝试使用typeahead的typeahead输入格式化程序ArtAttribute,您可以向它传递一个回调以格式化最终选定的值我将使用collect/map,而不是Pull,因为它更规范,我对lodash很陌生,不知道有回调。。。很酷,虽然我不知道为什么使用u.map更好,但我改为使用它。。。谢谢为什么地图更好?
$scope.heroList = _.pluck($scope.heroes, function(elm){
return elm.name + '(' + elm.lname + ', ' + elm.fname + ')';
});
$scope.heroList = _.map($scope.heroes, function(elm){
return elm.name + '(' + elm.lname + ', ' + elm.fname + ')';
});