使用angularjs中的一个更新按钮更新多行

时间:2015-11-10 07:54:57

标签: angularjs

我有3个数据。我现在想要的是使用一个按钮更新它们但我不知道如何启动或如何获取每个数据的id。更新数据时,它应警告更新的值。

对此有何建议?感谢

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

        alert(friend.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">
    <div ng-repeat="friend in book.friends">
      <input type="text" ng-model="friend.name" />
      
    </div>
     <input type="button" id="btn" name="btn" value="update" ng-click="update(friend)" />
  </div>
</div>

3 个答案:

答案 0 :(得分:1)

您可以这样做:

forEach上执行book.friends并发送book.friends(在html中修改)

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

        $scope.book.friends.forEach(function(v, i){
            v.name = friends[i].name;
        });

        console.log($scope.book.friends);
    };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="bookCtrl">
    <div ng-repeat="friend in book.friends">
      <input type="text" ng-model="friend.name" />
      
    </div>
     <input type="button" id="btn" name="btn" value="update" ng-click="update(book.friends)" />
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这不是纯粹的角度方式。但完成工作。

您需要遍历对象并将它们全部设置为给定名称。

  

$ scope.update = function(selectedfriend){   angular.forEach($ scope.friends,function(friend,index){

     

friend.name = selectedfriend.name

     

}); }

答案 2 :(得分:0)

<div ng-controller="bookCtrl">
    <div ng-repeat="friend in book.friends">
      <input type="text" ng-model="friend.name" />
    </div>
     <input type="button" id="btn" name="btn" value="update" ng-click="update(friend)" />
  </div>

您正在friend中传递update。但我认为这是不确定的。通过book.friends并找到更新的结果

<input type="button" id="btn" name="btn" value="update" ng-click="update(book.friends)" />

    $scope.update = function(friends) {
    for (var i = 0; i < friends.length; i++) {
        var friendId = friends[i].id;
    }
    alert(friends);
};