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

Using ui-typeahead to populate model with object but show string of that model

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

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

getItems()returns的数据是这样的结构:

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

现在我想要的是通过显示 item.name 来给出建议的类型(它目前正在做!)但是它所做的是将 itemSelected 设置为字符串而不是对象。

如果我更改 html 以便列表理解读取 getItems() 中的项目,我得到预先输入的对象(不是我想要的),尽管它确实设置了 itemSelected 变量到我选择的预先输入的对象。

我希望 typeahead 显示 item.name,但我希望将对象项目放入 itemSelected。我怎样才能做到这一点?

您可以尝试以下...效果很好

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">