#javascript #angularjs #angular-ngmodel #ng-controller
#javascript #angularjs #angular-ngmodel #ng-контроллер
Вопрос:
Я запускаю цикл в своем html, и на каждой итерации будет динамически создаваться модель.
<tr ng-repeat="item in voucherItems">
<td><input type="text" ng-model="this['id-' $index]" typeahead="brand.id as brand.BRANDNAME for brand in brandList" class="input-group" /></td>
</tr>
модель будет похожа на id1, id2, id3 и т.д.
Теперь я хочу использовать эту динамическую модель в моем контроллере angular.
function GetValue(indexno) {
var model=scope."id" indexno;
dosomething(model);
}
значением var model будет значение scope.id1 или scope.id2 или scope.id3, созданное в html.Теперь проблема в том,
область видимости.»id» indexno
не работает как scope.id1 или scope.id2 или scope.id3, которая будет динамической моделью, а скорее показывает ошибку. Вопрос в том, как я могу написать эту цитируемую часть в angular controller, которая будет работать как scope.id1 или scope.id2 или как я могу запустить эту модель динамически?
Комментарии:
1. как вы привязываете контроллер к DOM? используете ли вы
ng-controller
директиву? покажите это в html2. Вы пробовали
scope["id" indexn]
?3. да, я использую ng-контроллер. эта часть ok.html успешно связать с controller.no проблема в этом. При запуске метода GetValue он также получил значение параметра indexno. Просто мне нужно написать что-то, что работает как scope.id1 и т.д.
4. @Nora это не работает
5. Вы можете определить переменную в своей области, как
$scope.models = {}
тогдаng-model="models['id-' $index]"
Ответ №1:
У меня есть решение.В html
ng-модель=идентификатор[$index]
в контроллере.Сначала я должен заявить
scope.id ={};
затем в методе GetValue
function GetValue(indexno) {
var model=scope.id[indexno];
dosomething(model);
}
это работает для меня.
scope.id [indexno] работает как scope.id1 или scope.id2 и т.д.Спасибо @Nora и @gianlucatursi.
НАБЛЮДЕНИЕ, которое Вы можете объявить scope.id =[] вместо scope.id ={} это тоже будет работать.