【发布时间】:2016-10-16 00:18:45
【问题描述】:
我有一个对象数组
// This is should be taken from database
$scope.users = [{"$id":"1","UserID":3,"Name":"A","Selected":false},{"$id":"2","UserID":4,"Name":"B","Selected":false},{"$id":"3","UserID":5,"Name":"C","Selected":false},{"$id":"4","UserID":6,"Name":"D","Selected":false}]
然后有一个数组,其中包含从上一屏幕中选择的用户
$scope.usersSelected = [{"$id":"3","UserID":5,"Name":"C","Selected":true,"$$hashKey":"object:83"},{"$id":"4","UserID":6,"Name":"D","Selected":true,"$$hashKey":"object:84"}]
如果在$scope.usersSelected 中找到$scope.users 的Selected 属性,我想更新它们。所以我迭代$scope.usersSelected然后在$scope.users的UserID中搜索它的UserID
for (var i = 0; i < $scope.usersSelected.length; i++) {
var obj = $.grep($scope.users, function (e) { return e.UserID == $scope.usersSelected[i].UserID; });
obj.Selected = true;
}
但Selected 属性不会更新。上面的代码有什么问题?
其次,我需要解释一下上面数组中的数据,为什么当我从数据库中填充数据时总是有"$id",当我从另一个屏幕获取数据时还有"$$hashKey"?这些价值从何而来?
注意:我使用 AngularJS 和 ASP.NET Web API 2 从数据库中获取数据。
【问题讨论】:
-
如果你想删除
$hashkey并像这样其他人做angular.toJson()它会删除 man -
@SakthiSureshAnand,太好了,感谢您提供的信息,所以以角度打印 json,是否应该使用
angular.toJson()而不是JSON.stringify()? -
我建议你去
underscore.jsunderscorejs.org/[][1] 它有所有的迭代方法
标签: javascript arrays angularjs json asp.net-web-api