[英]How can I use promise that involves one method from controller and one from another?
[英]In Miruken can I return a promise from the initialize method of a Controller?
我有一個帶有初始化函數的TeamController,該函數初始化team屬性。
new function() {
mlm.package(this, {
name: "team",
imports: "miruken.mvc",
exports: "TeamController"
});
eval(this.imports);
const TeamController = Controller.extend({
$properties:{
teams: []
},
initialize() {
this.base();
TeamFeature(this.context).getTeams().then(teams => {
this.teams = teams;
});
}
});
eval(this.exports);
};
如果我從初始化函數返回promise,則控制器在綁定的視圖中不可用。
return TeamFeature(this.context).getTeams().then(teams => {
this.teams = teams;
});
我以為我可以從初始化函數返回一個諾言,以強制加載,直到諾言得到解決?
Miruken使用完全支持諾言的IOC容器。 從容器解析組件時,如果組件具有初始化函數,則將調用初始化函數。 如果initialize函數返回promise,則從解析為所請求組件的容器中返回promise。
不幸的是,Angular和UI-Router不支持異步組件解析。 因此,UI實際上試圖綁定到Promise而不是解析的控制器。 要使代碼正常工作,您有2個選項。
使用UI路由器時,請勿從初始化函數返回承諾。
使用miruken的region指令和ViewRegion協議來構成您的視圖。 區域尊重諾言,並且將等待加載視圖,直到初始化返回的諾言得到解決為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.