状况:
在我的应用中,我使用angular ui-select显示人员列表(对象数组)。
除了一个小问题外它工作正常:
列表的第一项不可选。我不能选择它。
的 CODE:
<ui-select multiple tagging tagging-label="new tag" ng-model="multipleDemo.selectedPeople" theme="select2" ng-disabled="disabled" style="width: 800px;">
<ui-select-match placeholder="Select person...">{{$item.name}} <{{$item.email}}></ui-select-match>
<ui-select-choices repeat="person in people | propsFilter: {name: $select.search, age: $select.search}">
<div ng-bind-html="person.name | highlight: $select.search"></div>
<small>
email: {{person.email}}
age: <span ng-bind-html="''+person.age | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
的 PLUNKER:
http://plnkr.co/edit/CVaMvt4zBUBD2QEsfIdk?p=preview
的问题:
如何选择角度ui-select中的第一项 - 对象数组?
注意:
亚历山大的答案是正确的,因为为ui-select提供了解决这个问题的方法&lt;比0.9.5。
从版本0.9.5开始。这个问题已经解决了。
这是在GitHub中打开的问题:
https://github.com/angular-ui/ui-select/issues/477#issuecomment-66795541
答案 0 :(得分:1)
修复 v0.9.4。。
调试10分钟后,我在此行(ui-select source code)
中发现错误item = ctrl.tagging.fct !== undefined
? ctrl.tagging.fct(ctrl.search)
: item.replace(ctrl.taggingLabel,'');
但是项是对象而不是字符串,这就是为什么会发生错误。如果将此tagging-label =“”选项设置为false,则可以选择第一个项目。我不知道 item 什么时候会作为字符串传递,也许这是bug,或者需要设置其他选项才能实现...
答案 1 :(得分:0)
事实证明v0.9.4及更早版本中存在一个带有标记功能的错误。最好的解决方法是将ui-select
更新为版本0.9.5 +。
作为旁注,您的示例缺少必需的tagging
$范围函数,请阅读插件的文档:https://github.com/angular-ui/ui-select/wiki/ui-select。
tagging
- 启用标记模式(动态添加新项目)。接受作为范围函数的字符串。如果模型是对象数组,则此字符串是必需的。该函数将作为字符串传递给新项目,并应返回一个对象,该对象是要推送到items数组的转换值
如果你正在使用一组对象,你必须定义一个标记函数,以便指令知道你希望将对象推送到数组的样子。