Json 如何将键和值重新组合到对象中?

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

在我的Angular应用程序中,我使用
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);}