选择标签选项不适用于ng-repeat

时间:2013-12-16 11:52:50

标签: javascript angularjs

我需要对选择菜单中的选项使用ng-repeat,如此

<select name="category" id="category" ng-model="rumor.category" validation-pattern="requiredOnly" error-icon>
<option ng-repeat="cat in formOptions.categories" value="{{ cat }}" >{{ cat }}</option>
</select>

但是在渲染时我的选择是空的,当检查控制台时,我看到以下内容:

<select id="category" class="ng-scope ng-pristine ng-invalid ng-invalid-required" ng-model="rumor.category" name="category" required="required">
<option value="? undefined:undefined ?"></option>
</select>

现在我知道我应该在选择菜单上使用ng-options但是我希望包含与<{1}}不兼容的 angular-ui / ui-select2 和文档使用转发器进行推荐(见https://github.com/angular-ui/ui-select2

当我在不同的标签上使用相同的转发器时,例如:

ng-options

转发器按预期工作。任何想法为什么会这样?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您不应将ng-repeat用于选择选项。请改用ng-optionslink):

<select name="category" 
        id="category"
        ng-model="rumor.category"
        validation-pattern="requiredOnly"
        error-icon
        ng-options="c.cat for c in formOptions.categories">
</select>

答案 1 :(得分:0)

You can use select option with ng-repeat.

JS:

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


function MyCtrl($scope) {

    $scope.categories = [ {'cat' : '1'}, {'cat' : '2'}, {'cat' : '3'}, {'cat' : '4'}] ;

}

HTML:

<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        <select ng-model="item.value">
            <option ng-repeat="cat in categories" value="{{cat.cat}}">{{cat.cat}}</option>
        </select>
    </div>
</div>

You can also fiddle: http://jsfiddle.net/usmanfaisal/vHw7N/