简体   繁体   English

Angular JS下拉列表未显示ng-selected =“selected”的值

[英]Angular JS dropdown list is not showing value to ng-selected=“selected”

I'm new to AngularJS, facing problem with ng-option , selected='selected' is not showing in the combobox. 我是AngularJS的新手,面对ng-option问题,在组合框中没有显示selected='selected'

Below is the select HTML element and data source: 下面是选择HTML元素和数据源:

<select class="form-control" id="numberOfRows" ng-model="prefferedLanguage"
       ng-change="changePreference(prefferedLanguage)">
    <option my-repeat="language in sirCommonService.LOVData.LanguagePreference" value="{{language.LanguageISOCode}}"
            ng-selected="{{language.IsDefault == true}}">
        {{language.LanguageName}}
    </option>
</select>

sirCommonService.LOVData.LanguagePreference : sirCommonService.LOVData.LanguagePreference

"LanguagePreference": [
    {
      "LanguageISOCode": "EN",
      "LanguageName": "English",
      "IsDefault": true
    },
    {
      "LanguageISOCode": "FR",
      "LanguageName": "French",
      "IsDefault": false
    }
  ]

I want to set combo box value depending on the Property "IsDefault" of the Model on page Load. 我想设置组合框值,具体取决于Load页面上Model的属性“IsDefault”。 But it is not working. 但它没有用。

Generated HTML is: 生成的HTML是:

<select class="form-control ng-pristine ng-valid ng-empty ng-touched" id="numberOfRows" ng-model="prefferedLanguage" ng-change="changePreference(prefferedLanguage)"><option value="? undefined:undefined ?"></option>
    <!-- ngRepeat: language in sirCommonService.LOVData.LanguagePreference --><option my-repeat="language in sirCommonService.LOVData.LanguagePreference" value="EN" ng-selected="true" ng-repeat="language in sirCommonService.LOVData.LanguagePreference" class="ng-binding ng-scope" selected="selected">
        English
    </option><!-- end ngRepeat: language in sirCommonService.LOVData.LanguagePreference --><option my-repeat="language in sirCommonService.LOVData.LanguagePreference" value="FR" ng-selected="false" ng-repeat="language in sirCommonService.LOVData.LanguagePreference" class="ng-binding ng-scope">
        French
    </option><!-- end ngRepeat: language in sirCommonService.LOVData.LanguagePreference -->
</select>

The best way to handle the select is by using the select directive with ngOptions 处理select的最佳方法是使用带有ngOptionsselect指令

https://docs.angularjs.org/api/ng/directive/select https://docs.angularjs.org/api/ng/directive/ngOptions https://docs.angularjs.org/api/ng/directive/select https://docs.angularjs.org/api/ng/directive/ngOptions

<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>

I had the same problem as you before. 我遇到了和以前一样的问题。 Its just not working well with ngRepeat and options. 它与ngRepeat和选项不兼容。

i've just created a plnkr here: https://plnkr.co/edit/rCQzEhojZP0iHvoI1KlO?p=preview 我刚刚在这里创建了一个plnkr: https ://plnkr.co/edit/rCQzEhojZP0iHvoI1KlO p = preview

you should use select with ng-options , something like this 你应该使用带有ng-options的select,就像这样

 <select
        ng-model="defaultlanguage" 
        ng-options="lan.LanguageISOCode for lan in LanguagePreference">
 </select>

ng-selected directive takes an expression as a parameter. ng-selected指令将表达式作为参数。 So, change your code as following : 因此,请按以下方式更改代码:

ng-selected="language.IsDefault == true"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM