私は、データを返すサービスを介してAPIを呼び出すanuglarJSコントローラを持っています。問題は、返されるデータを使用するディレクティブでデータが更新されないことがあることです。なぜ、この配列の要素はconsole.log呼び出しの間で変わるのですか?
しかし、これを掘り下げた結果、いくつかの非常に奇妙な動作が観察されました。私は何が起こっていたのかをデバッグするためにいくつかのコンソールログを追加し、アレイのプロパティの項目数がコンソールコールから次のコンソールコールに変化していることを発見しました。次のように
コントローラコード:
init(){
this.ftService.getSitePromise(true).then((result: ng.IHttpPromiseCallbackArg<Site>) => {
let ctrl = this;
ctrl.isLoadingItems = true;
ctrl.hideSplash = true;
ctrl.siteReady = true;
ctrl.curSite = result.data;
ctrl.curSite.Items = [];
console.log("end of header site call");
ctrl.$timeout(function() {
console.log(ctrl.curSite.Items);
console.log("start get site items first call")
ctrl.ftService.getSitePromise(false).then((result: ng.IHttpPromiseCallbackArg<Site>) => {
console.log("return first call result.data.Items: " + result.data.Items.length);
ctrl.curSite.Items = result.data.Items;
ctrl.isLoadingItems = false;
console.log("return first call ctrl.curSite.Items: " + ctrl.curSite.Items.length);
console.log(ctrl);
console.log(ctrl.curSite);
console.log(ctrl.curSite.Items);
});
}, 200);
});
}
次のように予想されるようにデータが表示されていない、このコードの実行、コンソールからである。
任意の洞察これがどのように起こっているか、そして/または私がそれをどのように訂正するかもしれないかについては、非常に感謝しています。
約束から2番目の結果の名前を変更しようとしましたか? 'result'宣言された2つの変数があります。それはそれを乱している可能性があります – ChrisG
'[i]'アイコンの上にマウスを置くと、良いアドバイスが得られます。つまり、オブジェクトを展開すると、オブジェクトを記録したときの状態で必ずしもオブジェクトが表示されるわけではありません。 –
@ Fusion89kはすでに別の変数に縮小されているようですが、変更を試みても違いはありません。 – MalibuCusser