2

からの応答を移入ないTYPEAHEAD getSuggestions()が約束を使用せずに配列を返すときは問題ありません。ブートストラップは私のブートストラップ先行入力は以下の通りである約束

+0

'$ scope.getSuggestions'は右、約束を返します...そう、あなたが –

+0

で動作することができます配列を返すことはないだろう@ジャロマンダXは前任者が約束でうまくいきます。まれにポップアップが現れることがあるので、私はそう言うことができます。 – Ayan

答えて

0

AngularJSでは、resolve()の結果は、$ダイジェストサイクルの中で非同期的に伝播されます。つまり、then()で登録されたコールバックは、ダイジェストサイクルが発生したときにのみコールされます(後で)。

したがって、$ digest()をコールするか、必要に応じて、$ apply()はダイジェストサイクルを実行させる1つの方法です。

だから、与えられたコードは、次のように更新する必要があります

$scope.getSuggestions = viewValue => { 

    let deferred = $q.defer(); 

    getSuggestions(viewValue).then(words => { 
     deferred.resolve(words); 
     $scope.$digest();//this triggers the digest cycle 
    }) 
    .catch(()=>{ 
     deferred.reject([]); 
    }); 

    return deferred.promise; 

}; 
関連する問題