0

不知何故,当我让框架自动加载对话框视图时,它说:

加载视图异常失败

但是,当使用inlineView它时,它会按预期工作。我怎样才能让它加载视图?

4

1 回答 1

0

有点晚了,但它可能对其他用户有用。

这个错误是因为 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);
    });
  }
于 2017-01-07T14:05:43.423 回答