AngularJS:为什么我的 ng-change 没有记录实际的模型项目,而是记录绑定文本?
AngularJS : Why is my ng-change not logging the actual model item, but instead the binding text?
我的模型是包含 4 个项目的数组 vh.loadedViews
。
我的 ng-repeat 选项:ng-repeat="view in vh.loadedViews"
我在 select 上的 ng-模型:ng-model="view.description"
但是在我的 ng-change 函数中 vh.chooseView
它打印出绑定文本而不是实际的模型数据。
标记:
<section class="saved-views-modal" ng-show="vh.loadSavedModal">
<header><h1>Select a saved view</h1></header>
<select name="select"
ng-model="view.description"
ng-change="vh.chooseView(view.description)">
<option ng-repeat="view in vh.loadedViews"
value="view.description">{{view.description}}</option>
</select>
<button class="btn-green"
ng-click="vh.loadSavedView(view.description)">
Load View
</button>
</section>
指令控制器:
var vm = this; // vh in markup
vm.chooseView = function(description) {
console.log('chooseView > view.description: ');
console.log(description);
}
您还没有填充选项的 value
标签。您应该使用 value="{{view.description}}"
之类的插值来填充它以呈现选项值。
你的 ng-model 应该是 ng-model="vh.description"
而不是 view.description
标记
<select name="select"
ng-model="vh.description"
ng-change="vh.chooseView(view.description)">
<option ng-repeat="view in vh.loadedViews"
value="{{view.description}}">{{view.description}}</option>
</select>
我的模型是包含 4 个项目的数组 vh.loadedViews
。
我的 ng-repeat 选项:ng-repeat="view in vh.loadedViews"
我在 select 上的 ng-模型:ng-model="view.description"
但是在我的 ng-change 函数中 vh.chooseView
它打印出绑定文本而不是实际的模型数据。
标记:
<section class="saved-views-modal" ng-show="vh.loadSavedModal">
<header><h1>Select a saved view</h1></header>
<select name="select"
ng-model="view.description"
ng-change="vh.chooseView(view.description)">
<option ng-repeat="view in vh.loadedViews"
value="view.description">{{view.description}}</option>
</select>
<button class="btn-green"
ng-click="vh.loadSavedView(view.description)">
Load View
</button>
</section>
指令控制器:
var vm = this; // vh in markup
vm.chooseView = function(description) {
console.log('chooseView > view.description: ');
console.log(description);
}
您还没有填充选项的 value
标签。您应该使用 value="{{view.description}}"
之类的插值来填充它以呈现选项值。
你的 ng-model 应该是 ng-model="vh.description"
而不是 view.description
标记
<select name="select"
ng-model="vh.description"
ng-change="vh.chooseView(view.description)">
<option ng-repeat="view in vh.loadedViews"
value="{{view.description}}">{{view.description}}</option>
</select>