在标题上,我的选择似乎无法显示所选的值,例如,正确选择...
<md-input-container flex>
<label>Anno selezione</label>
<md-select name="annoSelect" ng-model="vm.anno_attuale"
ng-value="vm.progetto.pprs[$index].anno"
ng-selected="item.selected" >
<md-option ng-repeat="item in vm.progetto.pprs" >
{{vm.progetto.pprs[$index].anno}}
</md-option>
</md-select>
</md-input-container>
我尝试了在堆栈上找到的一些解决方案,例如: Angular : ng-select does not show ng-selected value
但他们中的任何人都没有解决问题...... 有什么想法吗?
答案 0 :(得分:2)
来自文档:
注意:
ngSelected
不与select
和ngModel
指令交互,它只在元素上设置selected
属性。如果您在选择中使用ngModel
,则不应在选项上使用ngSelected
,因为ngModel
会设置选择值和所选选项。
ng-value
指令位置错误:
<md-input-container flex>
<label>Anno selezione</label>
<md-select name="annoSelect" ng-model="vm.anno_attuale"
̶n̶g̶-̶v̶a̶l̶u̶e̶=̶"̶v̶m̶.̶p̶r̶o̶g̶e̶t̶t̶o̶.̶p̶p̶r̶s̶[̶$̶i̶n̶d̶e̶x̶]̶.̶a̶n̶n̶o̶"̶
̶n̶g̶-̶s̶e̶l̶e̶c̶t̶e̶d̶=̶"̶i̶t̶e̶m̶.̶s̶e̶l̶e̶c̶t̶e̶d̶"̶ ̶ >
<md-option ng-repeat="item in vm.progetto.pprs"
ng-value="item.anno">
̶{̶{̶v̶m̶.̶p̶r̶o̶g̶e̶t̶t̶o̶.̶p̶p̶r̶s̶[̶$̶i̶n̶d̶e̶x̶]̶.̶a̶n̶n̶o̶}̶}̶
{{item.anno}}
</md-option>
</md-select>
</md-input-container>
有关详细信息,请参阅Using ngValue
to bind the model to an array of objects
答案 1 :(得分:1)
您需要将ng-selected
从<select>
元素移动到<option>
元素
ng-selected指令在
<option>
列表中设置<select>
元素的选定属性。
在您的特定情况下,您的代码中出现了多个问题。 ng-value
和ng-selected
指令属于<md-options>
元素。您还需要选择一种策略,如果您使用ng-model
和ng-value
,则不应使用ng-selected
。
您的代码应如下所示:
<md-input-container flex>
<label>Anno selezione</label>
<md-select name="annoSelect" ng-model="vm.anno_attuale">
<md-option ng-repeat="item in vm.progetto.pprs" ng-value="vm.progetto.pprs[$index].anno">{{vm.progetto.pprs[$index].anno}}</md-option>
</md-select>
</md-input-container>
另外,我会仔细检查您的ng-model
和ng-value
,以确保您获得自己认为的价值观。看看官方AngularJS Material mdSelect Docs。有一个非常类似于你的例子。它应该有助于你的发展!