下拉列表中的角度ng-repeat

时间:2013-09-18 20:33:24

标签: javascript angularjs angularjs-ng-repeat

我正在尝试使用Angular中的ng-repeat

   <select ng-model="selected_item">
        <option ng-repeat="item in items" value="{{item.id}}"
                ng-change="doSomething(selected_item)">
        {{item.name}} - {{item.another_attribute}}
        </option>
    </select>

并收到错误No controller: ngModel

通常我使用ng-options构建下拉列表,但由于选项的标签由两个不同的属性组成,因此它不起作用。

<select ng-model="selected_item" 
        ng-options="item.id as item.name for item in items" 
        ng-change="doSomething(selected_item)">

如你所见,我不能在这里使用两个属性作为标签。

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

您可以在标签表达式中连接字符串。所以

ng-options="item.id as (item.name + '-' + item.another_attribute) for item in items" 

应该可以正常工作。

快速演示:http://jsbin.com/OKoviMA/1/


更准确地说,标签表达式是一个真正的角度表达式,所以你也可以应用一个过滤器或调用一个控制器方法,甚至传递当前的itteration值作为参数。