[英]angularjs foreach loop issue
我是AngularJS的新手,我想用json
文件中的數據構建object
。
這是我的json
文件:
[
{"id": 1, "name": "user1", "select": false },
{"id": 2, "name": "user2", "select": false },
{"id": 3, "name": "user3", "select": false },
{"id": 4, "name": "user4", "select": false },
{"id": 5, "name": "user5", "select": false }
]
現在,我想使用foreach
循環來檢查哪個用戶具有select == true並將此用戶名推送到新array
。 所以這是我的第一個嘗試:
'use strict';
angular.module('apiOmat', [])
.controller('UsersCtrl', function($scope, $http){
$http.get('users.json').then(function(usersResponse) {
$scope.users = usersResponse.data;
});
$scope.submit = function(message,title){
var tempArr = [];
angular.forEach($scope.users.name, function(value,key){
tempArr.push(value);
});
console.log(tempArr);
$scope.messagebody = '{ "title" = "' + title + '", "message" = "' + message + '"}';
}
});
我也試過這個:
$scope.submit = function(message,title){
var tempArr = [];
angular.forEach($scope.users, function(value,key){
tempArr.push( { key : value } );
});
console.log(tempArr);
控制台記錄5個對象,但沒有任何值。 只是1:對象2:對象3:對象...
我知道對真或假的查詢丟失了。 但是我想在添加查詢之前修復此步驟。
為了這:
現在我想使用一個foreach循環來檢查哪個用戶具有select == true並將此用戶名推送到我的新數組
$scope.submit = function(message,title){
var tempArr = [];
angular.forEach($scope.users, function(item){
if( item.select == true){
tempArr.push(item);
}
});
另一個簡單且更好的解決方案是改為使用filter
。
$scope.submit = function(message,title){
var tempArr = ($scope.users).filter(function(d){
return (d.select == true);
});
});
console.log(tempArr)
嘗試下面
$scope.submit = function(message,title){
var tempArr = [];
angular.forEach($scope.users, function(i,j){
if(i.select == true)
{
tempArr.push( i.name );
}
});
console.log(tempArr);
嘗試這個
$scope.submit = function(message,title){
var tempArr = [];
angular.forEach($scope.users, function(user){
tempArr.push( {"name":user.name} );
});
試試這個
var tempArr = [];
angular.forEach($scope.users, function(user){
user.select && tempArr.push(user.name);
});
console.dir(tempArr);
把事情簡單化:
$scope.submit = function(message, title){
var tempArr = [];
angular.forEach($scope.users, function(user){
if( user.select == true) //filter select:true only
tempArr.push( {"name_as_key":user.name} ); //name_as_key can be replaced if intended to
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.