AngularJS:ng-selected不显示选定的值

时间:2018-06-11 19:39:53

标签: javascript angularjs

在标题上,我的选择似乎无法显示所选的值,例如,正确选择...

<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

但他们中的任何人都没有解决问题...... 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

来自文档:

  

注意:ngSelected不与selectngModel指令交互,它只在元素上设置selected属性。如果您在选择中使用ngModel,则不应在选项上使用ngSelected,因为ngModel会设置选择值和所选选项。

     

— AngularJS ng-selected Directive API Reference

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-selected - AngularJS Doc

在您的特定情况下,您的代码中出现了多个问题。 ng-valueng-selected指令属于<md-options>元素。您还需要选择一种策略,如果您使用ng-modelng-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-modelng-value,以确保您获得自己认为的价值观。看看官方AngularJS Material mdSelect Docs。有一个非常类似于你的例子。它应该有助于你的发展!