[英]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.