angularjs非常简单是/否布尔选择指令不绑定

时间:2016-02-10 14:19:05

标签: angularjs angularjs-directive

我正在尝试编写必须是最简单的角度指令,该指令显示是/否选择列表并绑定到包含布尔值的模型。不幸的是,现有的价值从未预先选定。我的指令是

  return {
        restrict: 'E',
        replace: true,
        template: '<select class="form-control"><option value="true">Yes</option><option value="false">No</option></select>',
        scope: {
              ngModel: '='
        }
  }

我将该指令称为

<yesno ng-model="brand.is_anchor"></yesno>

选择选项显示,生成的HTML显示为

<select class="form-control ng-isolate-scope ng-valid" ng-model="brand.is_anchor">
    <option value="? boolean:false ?"></option>
    <option value="true">Yes</option>
    <option value="false">No</option>
</select>

绑定模型的初始值为“false”,但它始终显示一个空选项,并且符合生成的HTML中列出的第一个选项。

有人可以提供建议吗?

2 个答案:

答案 0 :(得分:2)

您不能将<option>标签与angularjs一起使用 请改用select元素上的角度“ng-options”指令。

<select ng-options="..."></select>

请参阅角度文档: https://docs.angularjs.org/api/ng/directive/ngOptions

您的问题将由此解决。

答案 1 :(得分:2)

请参阅我们必须使用<select ng-options="..."></select>

根据angular js文档或

我们必须通过添加角度js的ng-selected指令来为其应用变通方法,以便您的代码

<select class="form-control ng-isolate-scope ng-valid" ng-   model="brand.is_anchor">
  <option value="? boolean:false ?"></option>
  <option value="true" ng-selected="brand.is_anchor == true">Yes</option>
  <option value="false" >No</option>
</select>

如果我们不想使用

,我们必须应用此额外的解决方法
<select ng-options="..."></select>