具有对象类型的AngularStrap typeahead

时间:2013-04-19 16:20:42

标签: json twitter-bootstrap angularjs angularjs-directive

我正在使用angular.js / angularstrap从远程源获取格式为[{'name': 'name1', 'code': 'code1'}, {'name': 'name2', 'code': 'code2']的元组列表。现在,能够在名称和代码的组合中输入自动完成功能真的很棒。即查询“name1”应该获取第一个对象,“code2”应该返回第二个对象。

另外,我想用所选对象的值更新两个单独的字段。

这个问题与Typeahead using object name非常相似,但我不能让它与远程源一起运行。我是angular.js的新手,我真的想提出一个解决方案,而不是回到jQuery。

现在我的控制器中有以下内容:

$scope.typeaheadFn = function(query, callback) {
    $http.get('/autocomplete?term='+query).success(function(items) {
        callback(items);
    });
}

,但由于列表 items 是非字符串对象列表,因此失败。我的HTML看起来像:

<input bs-typeahead="typeaheadFn" id="id_search" name="search" ng-model="search"  type="text">

<input type="text" value="{| search.code |}" disabled="disabled" placeholder="Code" />
<input type="text" value="{| search.name |}" disabled="disabled" placeholder="Name" />

任何指针?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为typeahead指令不支持开箱即用。通过将items简化为一个简单数组并将简化数组传递给callback,您可以非常轻松地绕过它。如果您以后确实需要这些对象,可以$scope.storedItem = items