Arrays 如何从对象数组键将元素与ng模型绑定

Arrays 如何从对象数组键将元素与ng模型绑定,arrays,angularjs,Arrays,Angularjs,情况就是这样 angular.module('myApp',[]) .controller('bookCtrl',函数($scope){ $scope.book={ 名称:'会议邀请', 朋友们:[ {'id':1,'name':'raju'}, {'id':2,'name':'radha'}, {'id':3,'name':'luttapi'}, ] }; $scope.update=函数(){ $scope.book.friends[1]={'id':2,'name':'sam'}; 警报

情况就是这样

angular.module('myApp',[])
.controller('bookCtrl',函数($scope){
$scope.book={
名称:'会议邀请',
朋友们:[
{'id':1,'name':'raju'},
{'id':2,'name':'radha'},
{'id':3,'name':'luttapi'},
]
};
$scope.update=函数(){
$scope.book.friends[1]={'id':2,'name':'sam'};
警报($scope.book.friends[1].name);
};
});

可以使用
for循环
,但是,我认为下面的这项工作可能会让您感兴趣

只需更改JSON的结构,使用
Object.proerty
而不是数组。它会成功的

angular.module('myApp',[])
.controller('bookCtrl',函数($scope){
$scope.book={
名称:'会议邀请',
朋友们:{
id1:{'name':'raju'},
id2:{'name':'radha'},
id3:{'name':'luttapi'},
}
};
$scope.update=函数(){
$scope.book.friends.id1={'name':'sam'};
警报($scope.book.id1.name);
};
});
注:
这种解决方法的一个问题是API提供了
JSON
。如果接收到的数据结构固定且有角度,则需要将
JSON
转换为此结构。您可能需要知道要转换的
数据有多大。因为这样的任务会导致
内存泄漏
,然后
JavaScript垃圾收集
。而且它会显著降低你的应用程序速度

你可以这样做:

angular.module('myApp',[])
.controller('bookCtrl',函数($scope){
$scope.book={
名称:'会议邀请',
朋友们:[{
“id”:1,
“姓名”:“拉朱”
}, {
“id”:2,
“name”:“radha”
}, {
"id":3,,
“name”:“luttapi”
}]
};
$scope.update=函数(友元){
提醒(好友名称);
};
});

您可以使用此选项:

    angular.module('myApp', [])
    .controller('bookCtrl', function($scope) {
    $scope.GetOne={};
        $scope.book = {
            name: 'Session Invites',
            friends: [
                 {'id': 1, 'name': 'raju' },
                {'id': 2, 'name': 'radha' },
                {'id': 3, 'name': 'luttappi' },
                ]
        };
        $scope.update = function(){ 
            $scope.GetOne=$scope.book.friends[1];
            alert($scope.GetOne.name );
        };
    });

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="bookCtrl">
      <input type="text" ng-model="GetOne.name" />
      <input type="button" id="btn" name="btn" value="update" ng-click="update()" />
    </div>
  </div>
angular.module('myApp',[])
.controller('bookCtrl',函数($scope){
$scope.GetOne={};
$scope.book={
名称:'会议邀请',
朋友们:[
{'id':1,'name':'raju'},
{'id':2,'name':'radha'},
{'id':3,'name':'luttapi'},
]
};
$scope.update=函数(){
$scope.GetOne=$scope.book.friends[1];
警报($scope.GetOne.name);
};
});

您可以使用angular.forEach进行迭代,然后在迭代后匹配idarray@Anita-我想使用ng模型直接绑定数组元素,这可能吗?我不认为这是可能的。看看这个,我想避免ng重复,因为文本框将放置在表单中的不同位置,这不是一个列表。如何使用单个保存按钮提交所有值?这似乎是一个很好的方法。好友列表是一个动态列表,让我看看如何以这种格式加载它。@CoderHawk Yeap,唯一关心的是提供
JSON
的API。如果接收到的数据结构固定且有角度,则需要将
JSON
转换为此结构。您可能需要知道要转换的
数据有多大。因为这样的任务会导致
内存泄漏
,然后
JavaScript垃圾收集
。它会大大降低你的应用程序速度。编辑:我将在回答中更新此内容,以备将来使用。