如何在angularjs中使用select2来获得字符串值而不是对象

时间:2015-03-20 08:41:18

标签: javascript angularjs

我的数据为:

selected  : { id : <string,a task id>, description = <string> };

tasks = [ {  id : 'a', value : 'Apple' }, { id : 'b', value : 'Ball' }, 
// more items;
];

现在我想使用select2如变量bind到select2应该只包含id,而不是整个对象

所以如果我选择Ball,selected应为{ id : 'b', description : 'some_desc' }

<ui-select ng-model="selected.id">
            <ui-select-match placeholder="select name ">{{ $select.selected.value }}</ui-select-match>
            <ui-select-choices repeat="type in tasks | filter: $select.search">{{type.value}}</ui-select-choices>
          </ui-select>

如何实现只将字符串作为选定值而不是整个对象。

编辑:这是示例plunker http://plnkr.co/edit/onmP7FKIa7MpXsRnH025?p=preview

其中selected.sel是一个对象而不是一个字符串。 我想selected.sel应该是一个字符串,始终是conntry的代码

1 个答案:

答案 0 :(得分:1)

只需在你的重复中使用:

country.code as country in countries

应该这样做。

来自example

<ui-select ng-model="selected.sel">
    <ui-select-match placeholder="Select or search a country...">
      {{$select.selected.name}}
    </ui-select-match>
    <ui-select-choices repeat="country.code as country in countries | filter: $select.search">
       <span ng-bind-html="country.name | highlight: $select.search"></span>
       <small ng-bind-html="country.code | highlight: $select.search"></small>
    </ui-select-choices>
 </ui-select>

如果没有,你应该切换到新的ui-select指令,因为select2将会停止。