在Aurelia对话框中,如何为viewModel创建路由?

时间:2017-11-16 14:05:32

标签: javascript aurelia

打开Aurelia对话框时,通常会传递一个viewModel。

这就是我目前正在做的事情,但如果路径在这里没有硬编码会更好。

            let lookupResponse = await this.dialogService.open(
            {
                model:
                {
                    configuration: this.LookupConfiguration
                    caption: 'Select an item'
                },
                viewModel: 'App/Components/Lookup/LookupDialog'
            });

我宁愿能像路线一样引用viewModel路径

            let lookupResponse = await this.dialogService.open(
            {
                model:
                {
                    configuration: this.LookupConfiguration
                    caption: 'Select an item'
                },
                viewModel: App.routes.components.lookupdialog
            });

如果您只为组件添加Routes.js并尝试使用它,则会出现此错误:

  

未捕获(承诺)错误:无法确定默认视图策略   对象。

那么需要添加什么才能实现?某种自定义视图策略?

1 个答案:

答案 0 :(得分:1)

您可以import对话进入您的班级并使用它们:

import { LookupDialog } from "app/components/lookup/lookup-dialog.ts";

export class Foo {
  bar() {
    let lookupResponse = await this.dialogService.open(
       {
         model:
         {
           configuration: this.LookupConfiguration
           caption: 'Select an item'
         },
         viewModel: LookupDialog
       });
  }
}