Javascript 使用ng选项生成dropdownlist时,如何设置所选选项?

Javascript 使用ng选项生成dropdownlist时,如何设置所选选项?,javascript,angularjs,ng-options,Javascript,Angularjs,Ng Options,这是plnker 在script.js中,我创建了一个变量info来存储选项。所选选项应为“西班牙语”,因为 如何解决这个问题?在原始plunkr中,您使用HTML中的数据,而作用域中的变量称为info。使用ng repeat而不是ng选项,我使其工作如下: <div ng-controller="MyCntrl"> <select > <option ng-repeat="option in info.value.lang" selected="opt

这是plnker

script.js
中,我创建了一个变量
info
来存储选项。所选选项应为“西班牙语”,因为


如何解决这个问题?

在原始plunkr中,您使用HTML中的数据,而作用域中的变量称为info。使用ng repeat而不是ng选项,我使其工作如下:

<div ng-controller="MyCntrl">
  <select >
    <option ng-repeat="option in info.value.lang" selected="option.selected">{{ option.name }}</option>
  </select>
</div>

{{option.name}

如果我把你的问题解释正确的话,也会得到你想要的结果


编辑:哦,顺便说一句,selected应该是class='selected'而不是布尔值。

您需要添加
ng模型。根据您的
info.value.lang
可以将
selected:true
设置为模型值

function MyCntrl($scope) {
    $scope.info = info;
    $scope.selectedItem = null;

    angular.forEach(info.value.lang, function(lang) {
      if (lang.selected === true){
        $scope.selectedItem = lang.value;
      }
    });
}

<div ng-controller="MyCntrl">
  <select ng-model="selectedItem" ng-options="option.value as option.name for option in info.value.lang" >
  </select>
</div>
函数MyCntrl($scope){
$scope.info=info;
$scope.selectedItem=null;
angular.forEach(info.value.lang,函数(lang){
如果(lang.selected==true){
$scope.selectedItem=lang.value;
}
});
}

演示:

您在js和html中使用了不同的变量名。ngOptions需要有一个模型。要将西班牙语设置为默认值,必须执行以下操作

<body>
<div ng-controller="MyCntrl">
  <select ng-model="someModel" ng-init="someModel=3082" ng-options="option.value as option.name for option in info.value.lang">
  </select>
</div>
</body>


此处,某些型号将具有从选项中选择的值。

您需要添加
ng型号
检查此链接,它现在正在工作。。

可以使用
ng repeat
。。但是有没有办法用
ng选项
?是的,我想阿鲁库玛发布的答案更好,它使用了ng选项。这只在所选选项是最后一个选项时有效。如果我修改变量信息,如中所示,则所选选项错误。我没有在JS中编辑info变量。但正如我在“编辑选定项”中提到的,使用=选定项工作,不是真是假。@0n1yDream:plunker
“value;”:3082,
“value;”:6666,
。我在我的plunker中添加了
test
对象。请检查我的plunker。我遇到另一个问题:当我选择一个选项时,例如“测试”,我想将“西班牙语”的选择值更改为false,将“测试”的选择值更改为true。我如何解决这个问题?
<body>
<div ng-controller="MyCntrl">
  <select ng-model="someModel" ng-init="someModel=3082" ng-options="option.value as option.name for option in info.value.lang">
  </select>
</div>
</body>