0
在我的控制,我有以下代碼:
PartnersService.GetNonPartnerBanks().success(function (data) {
vm.nonPartnerBanksList = data;
}).error(function() {
vm.nonPartnerBanksList = [];
});
調用該服務:
service.GetNonPartnerBanks = function() {
var nonPartnerBankUrl = config.baseUrl + 'public/nonPartnerBanks';
return $http.get(nonPartnerBankUrl);
};
這所有的作品,但如果服務器需要更長的時間來回復,該應用程序的UI凍結了。
我做錯了什麼不是$http
服務使用AJAX和承諾,以便在調用進行時UI的呈現應該繼續?
的模板,它使用數據的部分:
<ol class="nya-bs-select nya-dashboard"
required
name="futurePartner"
id="futurePartner"
ng-model="npc.futurePartner"
data-size="5"
ng-change="npc.hideSucessMessage()"
title-tpl="<span>{{npc.partnerSelectTitle}}</span>"
deep-watch="true"
no-search-title-tpl="<span>{{'general.NoSearchResult' | translate}}</span>"
data-live-search="true">
<li nya-bs-option="bankItem in npc.futurePartnerList" data-value="bankItem.id">
<a>
{{bankItem.name}}
</a>
</li>
</ol>
追問:
Vita的回答讓我在正確的線索,這不是說$ HTTP擋住了我的UI,我有ajax電話上的動畫給人留下了Ui凍結的印象
在我的情況下,凍結意味着屏幕是完全白色的,我使用數據填充一些下拉列表(nya-bs-select),我沒有使用路由解析。 –
我已經添加了虛擬機正在饋送的視圖部分,下拉列表,但我無法發佈一個更大的示例,因爲它是巨大的控制器/視圖(我無法拆分)的一部分 –
嗯,我不知道這個指令的內部結構......但是,數組中有多少項?項目本身有多大?(有沒有名稱和ID或更多?以及究竟是什麼「深度觀察」(它不在nya-bs選擇文檔中,所以我想它是你的)。我正在考慮緩慢渲染你有ng-stats的項目,它可以告訴你,有多少觀察者和多長時間的摘要循環,所以如果沒有一些手錶需要太多的時間,我真的不能在第一眼看到任何奇怪的東西,但我會說你的控制器不應該是巨大的:/ –