使用ui-typeahead用对象填充模型,但显示该模型的字符串

时间:2016-07-15 20:31:07

标签: angularjs angular-ui-bootstrap typeahead

大家好,我有以下代码使用ui-angular typeahead

<input type="text" ng-model="itemSelected"
           uib-typeahead="item.name for item in getItems()" id="itemInput" class="form-control">

getItems()返回的数据属于以下结构:

  

[{itemId:12345,name:“item of item”} ....]

现在我想要发生的是通过显示item.name(它目前正在做的)来提供建议的类型:但它的作用是将itemSelected设置为字符串而不是对象。

如果我改变html使得列表理解读取getItems()中项目的项目我得到了typeahead给我对象(不是我想要的)虽然它确实将itemSelected变量设置为我所选择的对象预输入。

我想知道的是我怎样才能吃蛋糕并吃掉它?

我希望typeahead显示item.name,但我希望将对象项放入itemselected

我希望我在这里缺少一些基本的东西,任何指出我的思考失败都会很棒:)

1 个答案:

答案 0 :(得分:3)

你可以试试以下......它运作正常

https://plnkr.co/edit/Zsgw5RKAEi5C2IKLcpGR?p=preview

<div>seleted state: {{state4}}</div>
        <input type="text" ng-change="onedit()"  ng-model="state4" uib-typeahead="state as state.name for state in states | filter:$viewValue | limitTo:8">