Javascript 与在app.js上绑定模块名称相比,是否有更好的方法动态加载viewmodel和view以显示模式?
我现在所做的对我来说是不可靠的,我很想知道是否有更好的方法来做到这一点:我正在使用Javascript 与在app.js上绑定模块名称相比,是否有更好的方法动态加载viewmodel和view以显示模式?,javascript,aurelia,Javascript,Aurelia,我现在所做的对我来说是不可靠的,我很想知道是否有更好的方法来做到这一点:我正在使用 在我的app.html中。当我需要显示一个模态时,无论viewmodel处于活动状态,它都会触发一个事件聚合器发布事件,其中包含三个模态模型。模式标题、按钮数组(字符串)和视图/视图模型的模块路径。在app.js中,我订阅模式事件,当一个事件通过时,我设置应用程序的 this.modalModel=modalModel 它立即绑定并加载视图和视图模型,然后显示模式(引导模式)。这是可行的,但有几个问题告诉我,必
在我的app.html中。当我需要显示一个模态时,无论viewmodel处于活动状态,它都会触发一个事件聚合器发布事件,其中包含三个模态模型。模式标题、按钮数组(字符串)和视图/视图模型的模块路径。在app.js中,我订阅模式事件,当一个事件通过时,我设置应用程序的
this.modalModel=modalModel代码>
它立即绑定并加载视图和视图模型,然后显示模式(引导模式)。这是可行的,但有几个问题告诉我,必须有更好的方法:
重置app.js的modalModel时,不会对加载的模态的viewmodel调用canDeactivate()和deactivate()
我认为我无法将任何参数传递到modal viewmodel中的activate()方法中
它只是感觉不稳定
是否有更好的方法动态加载视图和视图模型、绑定和所有内容,以便在关闭模式时可以正确地将其停用
相关代码:
&时代;
${modalModel.title}
${button}
导出类应用程序{
//...
附({
//...
this.listen('show-modal',this.displaymodel.bind(this));
this.listen('hide-modal',this.closeModal.bind(this));
this.listen('show-modal-loader',this.showModalLoader.bind(this));
this.listen('hide-modal-loader',this.hideModalLoader.bind(this));
}
显示模式(modalModel){
this.modalModel=modalModel;
$(“#主模态”).modal();
}
closeModal(){
$(“#主模式”).model('hide');
this.modalModel=null;
}
showModalLoader(){
document.querySelector('#main modal.modal ajax').style.display='block';
}
hideModalLoader(){
document.querySelector('#main modal.modal ajax').style.display='none';
}
倾听(事件,fn){
this.eventAggregatorSubscriptions.push(this.ea.subscribe(event,fn));
}
}
使用aurelia对话框插件
要安装:jspm安装aurelia对话框
要激活:在main.js
configure()
中,调用aurelia.use.plugin('aurelia-dialog')代码>
用法:canDeactivate
和deactivate
是屏幕激活生命周期的挂钩;它们只在绑定到路由器管道的组件中工作。看看aurelia对话框,它是引导模式的一个特定项目