Связывание ng-repeat и ng-model в контроллере

Это мой первый пост здесь, так что потерпите меня, я тоже новичок в AngularJS. Я пытаюсь создать форму с помощью ng-repeat и не могу понять угловые вещи.

JS в контроллере:

$scope.myCurrentAssets = {
        cash_equiv: {name: 'Cash & Equivalents', value: 0, tbi: 41},
        invest: {name: 'Short Term Investments', value: 0, tbi: 42},
        notes_rec: {name: 'Notes Receivable', value: 0, tbi: 43},
        account_rec: {name: 'Accounts Receivable', value: 0, tbi: 44},
        inventory: {name: 'Inventory', value: 0, tbi: 45},
        prepaid: {name: 'Prepaid Expenses', value: 0, tbi: 46},
        other: {name: 'Other Current Assets', value: 0, tbi: 47}
    };

HTML:

<div class="row" ng-repeat="(keyAssets, valueAssets) in myCurrentAssets">
     <span>{{valueAssets.name}}</span>
     <input data-name="myCurrentAssets.{{keyAssets}}"
          data-ng-model=""
          data-placeholder="{{valueAssets.value}}"
          data-ng-change="compute()"
          />
</div>

У меня проблемы:

  1. пытаясь установить для «data-ng-model» что-то уникальное в каждом экземпляре ng-repeat

  2. как мне получить доступ к значению поля ввода из функции calculate()?


person mxtreme311    schedule 20.12.2013    source источник


Ответы (1)


пытаясь установить для «data-ng-model» что-то уникальное в каждом экземпляре ng-repeat

Вы можете использовать list[key][value], которые будут отличаться для каждого элемента в ng-repeat.

как мне получить доступ к значению поля ввода из функции calculate()?

Как правило, вы можете использовать ng-model, который автоматически извлекает input данные.

<div class="row" ng-repeat="(keyAssets, valueAssets) in myCurrentAssets">
     <span>{{valueAssets.name}}</span>
     <input data-name="myCurrentAssets[keyAssets]['name']"
          data-ng-model="myCurrentAssets[keyAssets]['value']"
          data-placeholder="myCurrentAssets[keyAssets]['value']"
          data-ng-change="compute(myCurrentAssets[keyAssets]['value'])"     
          /> 
</div>

Демонстрация Fiddle

person Maxim Shoustin    schedule 20.12.2013
comment
не могли бы вы привести пример? если я использую $index, он просто помещает итератор в поле ввода во входном теге - person mxtreme311; 21.12.2013