【问题标题】:AngularJS select directive not working with optionAngularJS 选择指令不适用于选项
【发布时间】:2013-04-19 08:09:40
【问题描述】:

这个例子看起来很简单,我只是不知道为什么它不起作用(我不想使用 ng-options,因为它不适用于 select2,我想使用一次的插件我明白了):

HTML:

<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        selectedNumber: {{selectedNumber}}
        <select ng-model="selectedNumber">
            <option ng-repeat="number in numbers" value="{{number}}">{{number}}</option>
        </select> 
        <div ng-repeat="number in numbers">
            {{number}}
        </div>
    </div>
</div>

AngularJS:

var app = angular.module('myApp', []);

app.controller('MyCtrl', function($scope) {
    $scope.numbers = [1, 2];
    $scope.selectedNumber = 2;
});

当检查元素时,它看起来像这样:

<select ng-model="selectedNumber" class="ng-pristine ng-valid">
    <option value="? number:2 ?"></option>
            <!-- ngRepeat: number in numbers -->
    <option ng-repeat="number in numbers" value="1" class="ng-scope ng-binding">1</option>
    <option ng-repeat="number in numbers" value="2" class="ng-scope ng-binding">2</option>
</select>

我猜是额外的“&lt;option value="? number:2 ?"&gt;&lt;/option&gt;”导致了这个问题,但我不知道如何摆脱它。我还为此创建了一个jsfiddle

【问题讨论】:

  • 你指的是什么额外的“”?
  • 我忘记放入代码块的那个:)。我刚刚修好了。

标签: select angularjs


【解决方案1】:

您看到的原因是因为您的选择绑定到一个不包含在其选项中的项目。尽管您正在通过 ng-repeat 添加选项,但我怀疑该指令将不起作用并且并非旨在以这种方式工作:

这是为什么会出现额外价值的参考。 AngularJS - extra blank option added using ng-repeat in select tag

我认为您有两个选择: 1.编写自己的指令 2. 使用内置的ng-options 并尝试使其与您的插件一起使用

这是一个参考:https://github.com/angular/angular.js/issues/639 和那个问题的小提琴:http://jsfiddle.net/GTynf/3/

这些可能会为您指明解决方案的正确方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多