Javascript AngularJSON处理(与ng repeat类似)
我尝试以以下方式处理json数据:Javascript AngularJSON处理(与ng repeat类似),javascript,angularjs,json,Javascript,Angularjs,Json,我尝试以以下方式处理json数据: $scope.activities = response.data; console.log($scope.activities.length); var list = []; for (var i = 0; i < $scope.activities.length; i++) { console.log($scope.activities[i].name); list.push($scope.activities[i].name); }
$scope.activities = response.data;
console.log($scope.activities.length);
var list = [];
for (var i = 0; i < $scope.activities.length; i++) {
console.log($scope.activities[i].name);
list.push($scope.activities[i].name);
}
var input = document.getElementById("myinput");
new Awesomplete(input, {
list: list
});
$scope.activities=response.data;
log($scope.activities.length);
var列表=[];
对于(变量i=0;i<$scope.activities.length;i++){
console.log($scope.activities[i].name);
list.push($scope.activities[i].name);
}
var input=document.getElementById(“myinput”);
新的Awesomplete(输入{
列表:列表
});
或者它是如何可能的(另一种情况,但原理相同):
其中navItems是一个JSON对象
这在angular中是怎么可能的,我的意思是它工作正常但不太好?请注意,您可以在指令中输入您的完整代码以获得“clean angular”,但这并不是五分钟的事情。以下是简化的数据库调用数据分配:
YourDatabaseCall().then(function(activitiesDataFromDb){
//the _.pluck method gets you an array of activity names
$scope.activities = _.pluck(activitiesDataFromDb, 'name');
var input = document.getElementById("myinput");
new Awesomplete(input, {
list: list
});
});
请参见,要复制其对Pull辅助对象的描述,请执行以下操作:
可能是最常见的用例的一个方便版本
映射:提取属性值列表。还有他们的例子:
使用
甚至更短
var input = document.getElementById("myinput");
new Awesomplete(input, {
list: response.data.map(function(item){
return item.name;
})
});
你有什么问题?你有错误吗?我想他想用带角度的Awesomeplete(例如,带ng repeat)。他的绑定通常不是很干净,但我不确定我能为他做些什么,除了推荐UI引导和它们的下拉菜单。使用库而不是简单数组有点愚蠢。mapI不知道“愚蠢”,但我大体上同意你的看法,尽管你会发现大多数开发人员都不知道。
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]
var input = document.getElementById("myinput");
$scope.activities = response.data;
var activityNames = $scope.activities.map(function(item){
return item.name;
});
new Awesomplete(input, {
list: activityNames
});
var input = document.getElementById("myinput");
new Awesomplete(input, {
list: response.data.map(function(item){
return item.name;
})
});