[英]Angular function in controller not getting called after promise
我正在使用組件結構構建Angular 1.5應用程序。 從服務中的$ http調用返回承諾后,我試圖調用另一個函數來過濾數據集,然后將其顯示在UI上。
但是,未調用filterApps函數。
另外...在filterApps函數中,我試圖與對象數組進行比較,然后返回具有相同名稱的對象。 這是解決此問題的最佳方法還是有一種更清潔的方法?
控制器:
import allApps from '../../resources/data/application_data.js';
class HomeController {
/*@ngInject*/
constructor(ItemsService) {
this.itemsService = ItemsService;
this.displayApps = [];
}
$onInit() {
this.itemsService
.getItems()
.success((apps) => this.filterApps(apps));
}
filterApps(siteApps) {
this.displayApps = allApps.applications.filter((app) => {
siteApps.applications.map((siteApp) => {
if(siteApp.name === app.name) {
return app;
}
})
});
}
}
export default HomeController;
我沒有看到filterApps
方法沒有得到調用的任何原因(正如您已經評論的那樣, success
函數已經得到調用)。 我猜您只是在檢查displayApps
變量中沒有攜帶任何東西。 真正的問題是您還沒有將內部map
函數結果返回給filter
。 這就是為什么什么都沒有得到回報的原因。
碼
filterApps(siteApps) {
this.displayApps = allApps.applications.filter((app) => {
//returning map function result.
return siteApps.applications.map((siteApp) => {
if(siteApp.name === app.name) {
return app;
}
})
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.