私は可能性として、非同期で完全に動作する角度選択を取得できません。私はそれを得ることができますほとんどすべて働いていません。ディレクティブで非同期の角度選択
コントローラがどのように見える想像:
$scope.stuff = {};
$scope.stuff.blah = "SOME_KEY";
External.list().then(function (data) {
$scope.stuff.sourceSystems =data;
});
、これは何らかの理由でうまく
<select ng-model="stuff.blah">
<option ng-repeat="(key, value) in stuff.sourceSystems | orderBy" value="{{key}}">{{key}}</option>
</select>
が、この値を表示するには、開始時に余分な空白の選択肢があります。
<select ng-model="stuff.blah" ng-options="key for (key, value) in stuff.sourceSystems | orderBy"></select>
しかし、いずれにせよ、私がSOME_KEYに設定した既存の値は選択されていません。最初のケースでは、リストの最初の値が選択されます。後者の場合は、空白の値が選択されます。どちらの場合も、基になるバウンド値はSOME_KEYです。しかし、私が実際に選択した値を変更すると、それを落とすことによって、バウンド値(blah)が正しく変更されます。
これは、bindToControllerがtrueに設定されているディレクティブにあります。
私は間違っていますか?
で繰り返しました - 実際に - 私はちょうど回避策を見つけました - もしng-optionsを使って約束のハンドラが完全なオブジェクトにバインドすると、$ scope.stuff.blah = data ["SOME_KEY"]は動いていますが、ちょっとハックしたようです。 –
あなたは 'data'のレスポンスに空のキーがないことを確信していますか?リストからレスポンスを投稿できれば、これをデバッグするのが簡単になります。 –