У меня есть массив объектовКак изменить объект JSON в массив объекта
// 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"}]
Я хочу обновить Selected
свойства $scope.users
, если они находятся в $scope.usersSelected
. Поэтому я итерируем $scope.usersSelected
затем найдите в UserID
в UserID
из $scope.users
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() 'он будет удалять человеку – SakthiSureshAnand
@SakthiSureshAnand, большое, спасибо за информация, поэтому в угловом для печати json, следует ли использовать 'angular.toJson()', а не 'JSON.stringify()'? – Willy
Я предлагаю вам пойти 'underscore.js' http://underscorejs.org/[][1] у него есть все методы для итерации, как вещи – SakthiSureshAnand