我有一个简单的md-select组件。我想在控制器中的number.number
属性上设置vm.telephonyInfo.phone.number
的值。
<md-input-container>
<md-select ng-model="vm.telephonyInfo.phone.number" placeholder="Selecteer een nummer" required>
<md-option ng-repeat="number in vm.phonenumbers"
ng-value="{{number.number}}" ng-click="vm.login()">{{number.number}}</md-option>
</md-select>
</md-input-container>
当我选择一个选项时,我会记录login()
功能,但属性this.telephonyInfo.phone.number
始终为null
。
我的数据绑定错了吗?我以为我必须将ng-value放在md-option中,将ng-model放在md-select中。
答案 0 :(得分:1)
使用ng-change
指令代替ng-click
:
<md-input-container>
<md-select ng-model="vm.telephonyInfo.phone.number"
ng-change="vm.login()"
placeholder="Selecteer een nummer" required>
<md-option ng-repeat="number in vm.phonenumbers"
̶n̶g̶-̶v̶a̶l̶u̶e̶=̶"̶{̶{̶n̶u̶m̶b̶e̶r̶.̶n̶u̶m̶b̶e̶r̶}̶}̶"̶
ng-value="number.number"
̶n̶g̶-̶c̶l̶i̶c̶k̶=̶"̶v̶m̶.̶l̶o̶g̶i̶n̶(̶)̶"̶ >{{number.number}}</md-option>
</md-select>
</md-input-container>
还要避免在{{ }}
指令中使用双卷ng-value
插值。请参阅AngularJS Developer Guide - Why mixing interpolation and expressions is bad practice。