在 AngularJS typeahead 上匹配多个对象 属性 值

Match multiple object property values on AngularJS typeahead

我正在尝试获取 Angular Bootstrap UI typeahead 以匹配多个属性。如果我有一个像这样的对象数组:

{
    "city":"New York",
    "region":"NY",
    "country":"USA"
},
{
    "city":"London",
    "region":"England",
    "country":"UK"
}

可以预先匹配 3 个属性(城市、地区、国家/地区)中的任何一个,如果匹配,return 全部作为结果下拉列表中的字符串。

如果用户键入 "NY" 它应该 return 并显示

New York, NY, USA

如果用户输入 "Lon",它应该 return 并显示

London, England, UK

我想知道是否可以这样做,最好的方法是什么?

注意:typeahead 设置为匹配前导字符。

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