AngularJS中的动态自动完成

时间:2016-02-10 18:44:58

标签: angularjs dynamic autocomplete

我正在尝试构建动态自动填充功能。 使用此示例:http://codepen.io/anon/pen/obJYPE

我正在使用Client.query()而不是[{'foo':'x','example':'etc'}]

但它不起作用。

function loadAll() {
  var repos = Client.query();
  return repos.map( function (repo) {
    repo.value = repo.name.toLowerCase();
    return repo;
  });
}

如果loadAll()直接返回Client.query(),几乎所有东西都会起作用,但它会停止搜索其中的项并返回以下错误:

typeError: Cannot read property 'indexOf' of undefined

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

如果client.query从服务器加载数据,那么它应该返回一个promise吗?

如果是这样,你应该这样做:

self.repos = [];// init to empty array to avoid error before data are ready
Client.query().then(function(data){
    self.repos = data; // or response.data is from $http
});         

否则我只能指出对indexOf的唯一调用是:

return function filterFn(item) {
    return (item.value.indexOf(lowercaseQuery) === 0);
};

所以您的项目已定义但不是值字段,可能是空项目?