2015-08-26 37 views
0

我认为它应该是人们处理它的一种常见模式,但我很惊讶为什么我在互联网上找不到任何东西。角度简单选择问题

可以说我有对象数组,并且我想在打开窗口中为客户显示这些对象。当顾客选择某件事情时,我想记住顾客的选择并进一步处理。

问题:客户可读的格式显示的所有项目 - item.name(伦敦,里斯本,曼彻斯特)当客户选择的东西,我ng-modelfromSelected等于只是城市串名字,这意味着什么对我来说,因为我还需要id进一步处理。

您能否建议我如何让fromSelected等于对象而不是字符串,但同时为用户提供友好的输出?

var app = angular.module("fly"); 

app.controller('PlaceController', function($scope) { 


$scope.fromSelected =''; 

$scope.getPlace = function() { 

    var items = [] 
    items.push({ 
     'id': 1, 
     'name': London 
     }); 
    items.push({ 
     'id': 2, 
     'name': Lisbon 
     }); 

return items; 
}; 

}); 

HTML:

<input type="text" ng-model="fromSelected" placeholder="Country, city or airport" typeahead="place.name for place in getPlace()" typeahead-loading="loadingLocations" typeahead-no-results="noResults" class="form-control"> 
+0

你'fromSelected'将有''放置所选对象..你可以简单地做'fromSelected.id' –

回答

2

野山羊,

您的预输入句子可以为你做的。像item as item.name for item in data | filter:$viewValue

这主要是告诉你的键盘缓冲,以显示您item.name,但你的对象item返回到模型

plunker将帮助你这样做

+0

可靠的答案,非常感谢!你能解释一下什么吗?过滤$ viewValue,如果我包括它,我的typeahead窗口没有得到填充或我看不到它是如何填充的?什么可能是一个原因? –

+0

'$ viewValue'在文档中是视图中的实际字符串值。它将视图的值传递给过滤器,以便过滤结果。你尝试删除它吗?结果是什么? – bobleujr

+1

当我删除它的作品。当我们想要过滤$ viewValue时,情况如何? –