AngularJS - 无法比较ngSelected

时间:2016-03-30 20:32:48

标签: javascript angularjs compare comparison

我正在尝试自动选择<选项>在ngRepeat中使用ngSelected。

一个选项在生成的html中以及< option>之间具有“selected”属性。标签,但< select>似乎没有选择的选项。

$scope.selected = 2;
$scope.isSelected = function(x) {
  return (x == $scope.selected);
};

$scope.myList = [{
  "id": "1", "name": "aaa"
}, {
  "id": "2", "name": "bbb"
}, {
  "id": "3", "name": "xxx"
}];

...

<select ng-model="selected">
  <option ng-repeat="item in myList" value="{{item.id}}" 
     ng-selected="isSelected(item.id)">
       {{item.name}} [selected {{item.id == selected}}]</option>
</select>

我尝试过parseInt值,将它们转换为字符串,然后评估比较......但它是一样的:显然,没有选择任何选项。

https://jsfiddle.net/monguz/yxsqgz5n/

我错过了什么? 感谢

修改 感谢您的评论和回复。

小提琴显示了我的真实代码的简化版本。 我已经尝试将“选中”作为字符串,但我无法100%确定它的类型。

无论如何,我不明白为什么代码原样没有显示选定的选项。 根据文档,表达式是“truthy”,因此它应该显示为选中。

https://docs.angularjs.org/api/ng/directive/ngSelected

1 个答案:

答案 0 :(得分:2)

我为此改变了jsfiddle并且工作了。

$scope.selected = '2';