繁体   English   中英

如何使用angular js选择动态选择选项值

[英]How to select dynamic select option value using angular js

<select  class="select" data-ng-model="sites.webSites.addable.languages"
ng-options="language as language.label for language in languages" >
                                                    </select>

$scope.languages = [
             {
                 value : 'lang_en',
                 label : 'English-en'
             },
             {
                 value : 'lang_es',
                 label : 'Spanish-es'
             },
             ];

单击一个按钮,我必须选择该项目

我已经试过了

var sitevalue = 'lang_es'//dynamic

$('.select').val(sitevalue);

但它不起作用,请提示。

将您的选择更改为以下内容:

<select data-ng-model="sites.language"
    ng-options="language.value as language.label for language in languages" ></select>

然后,这应该在您的控制器内部起作用:

sites.language = 'lang_es'

这是一个工作的jsfiddle

更新:

当您将language as language.label for ...编写language as language.label for ...您是在告诉angular将ng-model映射到类似{ value : '...', label : '...' } 每个参考都会对其进行跟踪,这意味着您必须将指定的实例完全分配给ng-model。 这是来自角度团队的jsfiddle对此进行了说明。

您可以通过在ng-options内部使用以下内容来使用简单的赋值来评估属性值,以取消所选的值: language.value as language.label for ...

而且您不想编写jquery选择器或操作DOM,请尝试避免$('.select').val(sitevalue); 使用角钢时。 改用本机js模型,然后依靠框架来完成其余的工作。

您应该将模型设置为要选择的确切对象(通过引用),而不仅是值。

使您像这样的HTML:

  <body ng-controller="TestCtrl">
    <select  class="select" ng-options=" language.label for language in languages" ng-model="selectedValue"></select>
    <button ng-click="selectedValue = defaultValue">Select Default</button>
  </body>

和您的控制器是这样的:

function TestCtrl($scope) {
  $scope.languages = [
   {
       value : 'lang_en',
       label : 'English-en'
   },
   {
       value : 'lang_es',
       label : 'Spanish-es'
   },
   ];
   $scope.selectedValue = {};
   $scope.defaultValue = $scope.languages[1];
}

这样就可以了。 工作的plunkr: http ://plnkr.co/edit/8HrQUGMx4jGmJv3fbdDq?p=preview

$scope.sites.webSites.addable.languages = 'lang_es';

选择的值与data-ng-model相关联

  1. ng-options应该是“ language.value as language.language.language.value for language for language”。

  2. data-ng-model(或仅ng-model)应为“ selectedLanguageValue”。

  3. 在控制器中,获取$ scope.selectedLanguageValue的值。

暂无
暂无

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

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