Json 如何将键和值重新组合到对象中?
在我的Angular应用程序中,我使用Json 如何将键和值重新组合到对象中?,json,angularjs,object,angularjs-ng-repeat,Json,Angularjs,Object,Angularjs Ng Repeat,在我的Angular应用程序中,我使用ng repeat循环浏览JSON对象中的所有项目。例如,对于我的JSON对象: $scope.animals = { horse: { sound: "Nay", legs: 4, } beaver: { sound: "thwack", legs: 2 } } 我想循环得到一个由马、海狸组成的列表,即 <div ng-re
ng repeat
循环浏览JSON对象中的所有项目。例如,对于我的JSON对象:
$scope.animals =
{
horse: {
sound: "Nay",
legs: 4,
}
beaver: {
sound: "thwack",
legs: 2
}
}
我想循环得到一个由马、海狸组成的列表,即
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
</div>
</div>
{{key}}
但是对于每一种动物,我想有一个按钮,可以获取整个对象并将其添加到我最喜欢的动物列表中。大概是这样的:
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
<div ng-click="addToFavorites(animal)">Add To Favorites</div>
</div>
</div>
{{key}}
添加到收藏夹
问题在于我不能将动物
作为参数传递,因为我已经将ng repeat
分解为(键,值)
如何重新组合(键、值)
,以便将对象作为一个整体使用?试试这个
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
<div ng-click="addToFavorites(key, value)">Add To Favorites</div>
</div>
</div>
试试这个
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
<div ng-click="addToFavorites(key, value)">Add To Favorites</div>
</div>
</div>
您的问题具有误导性,因为您不需要重新组装原始“对象”——只有属性名称和值。如果您首先为动物准备了一个对象:
var animals = [{
name: 'horse',
sound: ...,
...
}, {
name: 'beaver',
...
}, ...];
不需要“重新组装”,您只需使用它:
<div ng-repeat="animal in animals">
{{animal.name}}
<button ng-click="addToFavorites(animal)">...</button>
</div>
{{animal.name}
...
您的问题具有误导性,因为您不需要重新组合原始“对象”——只有属性名称和值。如果您首先为动物准备了一个对象:
var animals = [{
name: 'horse',
sound: ...,
...
}, {
name: 'beaver',
...
}, ...];
不需要“重新组装”,您只需使用它:
<div ng-repeat="animal in animals">
{{animal.name}}
<button ng-click="addToFavorites(animal)">...</button>
</div>
{{animal.name}
...
将键
和值
传递到addToFavorites
中怎么样?这个对象应该是什么样的呢?通常我会重复使用ng repeat=“animal in animals
并将animal
传递给addToFavorites
。然后我在另一边得到一个干净的对象,然后addToFavorites(value)
?addToFavorites(key,value){var animal={key:value}$scope.fav.push(animal);}将键和值传递到addToFavorites
?这个对象应该是什么样的?通常我会重复ng repeat=“animal in animals
并将animal
传递到addToFavorites
。然后我在另一边得到了一个干净的对象,addToFavorites(value)
?addToFavorites(key,value){var animal={key:value};$scope.fav.push(animal);}