Как следует из названия моего вопроса, я использую Angular Bootstrap DualListbox внутри NgRepeat , но мне не повезло заставить NgModel работать правильно. Позвольте мне попытаться смоделировать то, что я делаю ниже...
ctrl.js
...
$scope.things = mySvc.things;
$scope.vals = mySvc.vals;
...
$scope.selectedVals = [];
$scope.doStuff = function (aThing) {
$http.post(aUrl, { thing: aThing, val = $scope.selectedVals[0].Value })
.success(function () {
...
})
.error(function () {
...
});
};
tmp.html
...
<header ng-repeat-start="thing in things">
{{thing.Name}}
</header>
<select
ng-model="selectedVals"
ng-options="val.Value for val in vals"
multiple
bs-duallistbox
>
</select>
<button type="button" class="btn-lg" ng-click="doStuff(thing.Name)">Do Stuff</button>
<br ng-repeat-end />
Моя проблема в том, что я не могу заставить $scope.selectedVals
выбрать выбор из Angular Bootstrap DualListbox. Моя функция $scope.doStuff
вызывается со значением thing.Name
, переданным правильно, но я вижу ошибку в консоли TypeError: Cannot read property 'Value' of undefined
. Кроме того, я могу наблюдать через ведение журнала консоли, что $scope.selectedVals
на самом деле пусто.
У меня есть более или менее идентичная настройка, работающая в других частях моего веб-приложения, но ее нет в NgRepeat, поэтому я должен предположить, что это проблема. Кроме того, я видел несколько других сообщений о проблемах, с которыми люди сталкивались с NgModel внутри NgRepeat (см.: здесь, здесь, здесь и здесь), но я не могу понять как они относятся к решению конкретной проблемы, которая у меня есть.
Может ли кто-нибудь указать, что я делаю неправильно?