1

プロジェクトでSiyfion の typeahead ディレクティブを使用しています。

私がコントローラーで行うことは次のようなものです:

$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                                                                                                             
};                

ビューからjsonとして「オブジェクト」の配列を取得しdjangoます。しかし、問題は私の HTML テンプレートにあります。

<input type="text" class='sfTypeahead' datasets='dataSet' ng-model='testname' />

dataSet非同期呼び出しが行われている間 、最初は空であるため、エラーが発生します。

TypeError: Cannot read property 'name' of undefined

配列にデータが入力されるとすぐに変更を探すことができる方法はありますdataSetか?おそらくDOMが更新されますか?datasetsallObjects

誰でもここで何ができるかを提案できますか

4

1 に答える 1

1

完全な開示: 私は前述の指令の作成者です。

基本的に、Typeahead.js と Bloodhound がこれを行うように特別に設計されている場合、Angular 自体ですべてのプリフェッチを実行しようとしています。https://twitter.github.io/typeahead.js/examples/をよく見て、Bloodhound 提案エンジンに特に注意してください。

おそらくいくつかの用途があります:

注:使用していたディレクティブのバージョン (9 か月前) では、データセット ローカル変数の更新がサポートされていませんでしたが、現在はサポートされているため、必要に応じてそのようにすることもできます。

于 2014-08-13T13:15:02.643 に答える