角度1.4.0并选择:我不明白破坏性的变化

时间:2015-05-28 03:19:07

标签: angularjs

昨天发布角度1.4.0 更改日志表明“选择”有一个重大变化。

我过去常常使用这样的选择:

控制器代码:

// Default initial selection
$scope.filters = {
    someFilter: false
};

查看代码:

<div class="form-group">
    <label>Filter...</label>
    <select class="form-control input-sm" ng-model="filters.someFilter">
        <option value=""></option>
        <option value="true">is true</option>
        <option value="false">is false</option>
    </select>
</div>

选择将从选择“is false”选项开始。

现在,角度为1.4.0,情况并非如此:
所选选项为“空白”。我在渲染视图中看到两个空白(而不是之前的一个)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如上所述in the docs ......

  

没有select的{​​{1}}指令的值始终是一个字符串。

基本上,您正在尝试将字符串ngOptions与布尔值"false"进行比较。

一种可能的解决方案是使用false,例如

ngOptions

并在您的模板中

$scope.options = [
    { val: true, label: 'is true' },
    { val: false, label: 'is false' }
];

Plunker

或者,您可以在模型中使用字符串,例如

<select ng-model="filters.someFilter"
        ng-options="opt.val as opt.label for opt in options">
    <option value=""></option>
</select>

Plunker