2015-03-09 3 views
1

Я пытаюсь связать массив объектов с html. Но когда я изменил значение ввода, модель не изменилась. Что я делаю неправильно?ng-repeat not bind ng-model массив объектов

Извините, это очень простой случай, но я в замешательстве.

Мой HTML:

<div ng-app="myApp" ng-controller="myCtrl"> 
      <table class="price-table"> 
       <tbody> 
       <tr ng-repeat="item in prices track by $index"> 
        <td><span>{{item.country_code}}</span></td> 
        <td><input ng-value="prices[$index].price" ng-input="item.price = item.price" ng-disabled="!item.editMode" type="text"/></td> 
        <td><button class="btn price-table-btn" ng-click="item.editMode = !item.editMode" ng-disabled="item.noEdit">&#9998;</button></td> 
        <td><button class="btn price-table-btn" ng-click="savePrice($index, item)" ng-disabled="!item.editMode">&#10003;</button></td> 
        <td><button class="btn price-table-btn" ng-click="removePrice($index, item)" ng-disabled="!item.editMode">&times;</button></td> 
       </tr> 
       </tbody> 
      </table> 
    <div> 
      {{prices}} 
     </div> 
     </div> 

Мой код:

angular.module('myApp', []); 

angular.module('myApp') 
.controller('myCtrl', function($scope) { 
    $scope.prices = [{"country_code":"00","price":"12.00","editMode":false,"noEdit":false},{"country_code":"01","price":"1.00","editMode":false,"noEdit":false},{"country_code":"AU","price":"8.00","editMode":false,"noEdit":false},{"country_code":"CA","price":"5.00","editMode":false,"noEdit":false},{"country_code":"GB","price":"10.00","editMode":false,"noEdit":false},{"country_code":"UK","price":"10.00","editMode":false,"noEdit":false},{"country_code":"US","price":"3.00","editMode":false,"noEdit":false}]; 
}); 

http://jsfiddle.net/jaxxreal/ntb5b79w/

ответ

1

использование нг-модель

<input ng-model="item.price" ng-disabled="!item.editMode" type="text"/> 

Демо: Fiddle

ng-value не используется для 2 способ связывания, он используется для выбора элементов/ввода-радио

+0

большое спасибо! –

0

Вы должны использовать, ng-model="prices[$index].price"

вместо, ng-value="prices[$index].price"

Demo

+0

спасибо много! –

Смежные вопросы