【发布时间】:2014-11-23 14:31:30
【问题描述】:
在我的 Angular 应用程序中,我使用 ng-repeat 循环浏览我拥有的 JSON 对象中的所有项目。例如,对于我的 JSON 对象:
$scope.animals =
{
horse: {
sound: "Nay",
legs: 4,
}
beaver: {
sound: "thwack",
legs: 2
}
}
我想循环获得一个由Horse, Beaveri.e.组成的列表
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
</div>
</div>
但是对于每一种动物,我都想要一个按钮来获取整个对象并将其添加到我最喜欢的动物列表中。像这样的:
<div ng-repeat="(key, value) in animals">
<div class="niceBox">
<h1> {{key}} </h1>
<div ng-click="addToFavorites(animal)">Add To Favorites</div>
</div>
</div>
问题是我不能只将animal 作为参数传递,因为我已经将ng-repeat 分解为(key, value)。
如何重新组装 (key, value) 以便可以将对象作为一个整体使用?
【问题讨论】:
-
将
key和value都传递给addToFavorites怎么样?这个单个对象究竟应该是什么样子? -
通常我会重复
ng-repeat="animal in animals并将animal传递给addToFavorites。然后我在另一边得到一个漂亮干净的物体 -
那么
addToFavorites(value)到底有什么问题? -
addToFavorites(key, value) {var animal = {key : value} ; $scope.fav.push(动物); }
标签: json angularjs object angularjs-ng-repeat