不知何故,当我让框架自动加载对话框视图时,它说:
但是,当使用inlineView
它时,它会按预期工作。我怎样才能让它加载视图?
有点晚了,但它可能对其他用户有用。
这个错误是因为 Webpack 加载器。
更多信息:https ://github.com/aurelia/dialog/issues/127
我不喜欢使用字符串来引用对话框 ViewModel,因为我建议使用选项来强制在对话框 ViewModel 中查看。我不需要改变任何其他东西。例子:
对话框视图模型:
import {autoinject, useView} from 'aurelia-framework';
import {DialogController} from 'aurelia-dialog';
@autoinject()
@useView('./dialog-message.html') //This is the important line!!!!!
export class DialogMessage {
message: string = 'Default message for dialog';
constructor(private controller: DialogController){
controller.settings.centerHorizontalOnly = true;
}
activate(message) {
this.message = message;
}
}
对话框视图:
<template>
<ai-dialog>
<ai-dialog-body>
<h2>${message}</h2>
</ai-dialog-body>
<ai-dialog-footer>
<button click.trigger = "controller.cancel()">Cancel</button>
<button click.trigger = "controller.ok(message)">Ok</button>
</ai-dialog-footer>
</ai-dialog>
</template>
显示对话框的方法:
import {DialogMessage} from './dialog-message';
(...)
showDialog(){
this.dialogService.open({viewModel: DialogMessage, model: 'Hi, how are you?' }).then(response => {
if (!response.wasCancelled) {
console.log('good');
} else {
console.log('bad');
}
console.log(response.output);
});
}