Angular typeahead:监视数据集更改

时间:2013-10-29 10:05:39

标签: javascript django angularjs typeahead.js

我在我的项目中使用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

如果我可以在dataSetdatasets中查找更改,以便一旦填充数组allObjects,是否可以刷新DOM?

任何人都可以建议可以在这里做些什么

1 个答案:

答案 0 :(得分:1)

完全披露:我是上述指令的作者。

基本上,当你输入Typeahead.js&amp;时,你正试图在Angular中进行所有的预取。 Bloodhound专门为您设计。仔细看看https://twitter.github.io/typeahead.js/examples/并特别注意Bloodhound建议引擎。

也许有些用处:

注意:您使用的指令版本(9个月前)并不支持更新数据集局部变量,但现在可以,因此您可以