2016-08-11 1 views

ответ

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

Dialog Вид:

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