2015-11-10 4 views
0

У меня есть 3 данных. Теперь я хочу обновить их все с помощью одной кнопки, но я не знаю, как начать или как я могу получить идентификатор каждой информации. Когда данные обновляются, он должен предупредить обновленное значение.обновление нескольких строк с одной кнопкой обновления в angularjs

Любые предложения по этому вопросу? Благодаря

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>

+0

Пожалуйста, определите точное «обновление». Кроме того, если вы хотите одну кнопку, она не должна быть внутри ng-repeat, иначе вы будете иметь одну кнопку для каждого друга. –

ответ

1

Вы можете сделать что-то вроде этого:

Выполнение forEach на book.friends и отправить book.friends (время изменения в HTML)

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); 
 
    }; 
 
});
<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>

0

Это не чистый угловой путь. Но выполняет свою работу.

Вам необходимо выполнить итерацию по объектам и задать их все для заданного имени.

$ scope.update = функция (selectedfriend) { angular.forEach ($ scope.friends, функция (друг, индекс) {

friend.name = selectedfriend.name

}) ; }

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); 
}; 
Смежные вопросы