Aurelia对话框没有获得视图easy-webpack骨架

时间:2016-08-11 03:07:39

标签: aurelia aurelia-dialog

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

Failed to load view exception

但是,使用inlineView时,它按预期工作。 如何让它加载视图?

1 个答案:

答案 0 :(得分:0)

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

此错误是因为Webpack加载程序。

更多信息,其中:https://github.com/aurelia/dialog/issues/127

我不喜欢使用字符串来引用对话框ViewModel,因为我建议使用该选项强制View对话框中的ViewModel。我不需要改变任何其他东西。 例如:

Dialog 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);
    });
  }