我在我的项目中使用Siyfion's typeahead directive。
我在控制器中的操作是这样的:
$http({method: 'GET', 'url': CONFIG.SOMEURL})
.success(function(data, status, headers , config){
if(status==200)
{
$scope.objects = data;
for(i=0; i < $scope.objects.length; i++){
$scope.allObjects.push($scope.objects[i].name);
}
console.log($scope.allObjects);
$scope.dataSet = {
name : 'objs',
local : $scope.allObjects
};
我从django
视图中获取了一个'对象'数组作为json。但问题出在我的HTML模板中:
<input type="text" class='sfTypeahead' datasets='dataSet' ng-model='testname' />
由于dataSet
在执行异步调用时最初为空,因此出现错误:
TypeError: Cannot read property 'name' of undefined
如果我可以在dataSet
或datasets
中查找更改,以便一旦填充数组allObjects
,是否可以刷新DOM?
任何人都可以建议可以在这里做些什么
答案 0 :(得分:1)
完全披露:我是上述指令的作者。
基本上,当你输入Typeahead.js&amp;时,你正试图在Angular中进行所有的预取。 Bloodhound专门为您设计。仔细看看https://twitter.github.io/typeahead.js/examples/并特别注意Bloodhound建议引擎。
也许有些用处:
注意:您使用的指令版本(9个月前)并不支持更新数据集局部变量,但现在可以,因此您可以如果你喜欢的话,就这样做。