Aurelia 在使用变量的 setRoot 时找不到具有 ID 的模块
Posted
技术标签:
【中文标题】Aurelia 在使用变量的 setRoot 时找不到具有 ID 的模块【英文标题】:Aurelia Unable to find module with ID when setRoot with variable 【发布时间】:2017-09-04 22:41:54 【问题描述】:我正在尝试按照这个示例说明如何在多页应用程序中使用 aurelia。
http://patrickwalters.net/creating-multipage-apps-using-aurelia-2/
当我这样做时
aurelia.start().then(a =>
let start = 'app'
a.setRoot(start);
);
我收到以下错误:
我已经使用 require 完成了这项工作。也许与 webpack 有关? 在示例中,'start' 从 body 元素接收一个字符串,我只是想让它易于理解无法找到 ID 为 app 的模块
【问题讨论】:
【参考方案1】:Webpack 要求您使用 PLATFORM.moduleName
来声明您的模块名称,请参阅文档:https://github.com/aurelia/webpack-plugin/wiki/Managing-dependencies
所以你需要写
import PLATFORM from "aurelia-pal";
...
aurelia.start().then(a =>
let start = PLATFORM.moduleName('app');
a.setRoot(start);
);
【讨论】:
如示例所示,值 'app' 需要来自 a.host.attributes.start.value 并且即使使用 PLATFORM.moduleName 也不起作用,例如(使用 TS)a。 setRoot(PLATFORM.moduleName(a.host.attributes.getNamedItem('start').value))以上是关于Aurelia 在使用变量的 setRoot 时找不到具有 ID 的模块的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 DataDriver 库的 Robot Framework 时找不到变量“$username”
在使用 setRoot 时渲染 flash 或推入反应原生导航