我想让Angular Bootstrap UI typeahead与多个属性匹配。如果我有这样的对象数组:
{
"city":"New York",
"region":"NY",
"country":"USA"
},
{
"city":"London",
"region":"England",
"country":"UK"
}
可以预先匹配3个属性(城市,地区,国家/地区)中的任何一个,如果匹配,则在结果下拉列表中将所有字符串作为字符串返回。
如果用户输入“NY”,则应返回并显示
New York, NY, USA
如果用户改为输入“Lon”,则应返回并显示
London, England, UK
我想知道是否有可能做到这一点以及可能是最好的方法?
注意:输入前缀设置为与前导字符匹配。
答案 0 :(得分:2)
<强> 1。定义模型
$scope.model.addresses = [
{"city":"New York","region":"NY","country":"USA"},
{"city":"London","region":"England", "country":"UK"}
];
<强> 2。定义自定义过滤功能
$scope.findAddress = function(keyword) {
return $filter('filter')($scope.model.addresses , {'$': keyword});
}
'$' - 表示在所有属性中查找
第3。并尝试以这种方式使用
<input typeahead="address for address in findAddress($viewValue)"/>