2014-11-06 26 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>