2014-11-06 67 views
2

我正在尝试使用Angular Typeahead和我试图呈现的数据来自$ http调用。它是一组对象,如[{“abbrev”:“FL”,“state”:“Florida”},{“abbrev”:“VA”,{“state”:“Virginia”}]]。在HTML看起来像这样Angular Typeahead需要捕获对象

<input type="text" ng-model="selected" typeahead="item.state for item in states" typeahead-editable="false" />. 

控制工程,它从Web服务检索列表,并且当用户选择的状态时,它正确地填充文本输入和$ scope.selected变量存储州名。然而,我想要存储的是对象{“abbrev”:“FL”,“state”:“Florida”},因为我想将键/值对保存在数据库中。我怎样才能得到它选择一个对象只是值?

回答

0

这可以通过实际存储整个对象到$scope.selected来完成。这将是这个样子:

<input type="text" ng-model="selected" typeahead="item for item in states" typeahead-editable="false" typeahead-input-formatter="item.state" typeahead-template-url="results.html" />. 

需要作出的变化是:

  • 回报整个项目:typeahead="item for item in states"
  • 格式输入到显示状态:typeahead-input-formatter="item.state"
  • 添加模板:typeahead-template-url="results.html"

然后在你的HTML你可以定义您的自动完成模板以显示州名:

<script type="text/ng-template" id="results.html"> 
    <a>{{match.model.state}}</a> 
</script>