Javascript Aurelia start setRoot给出未指定applicationHost的错误
使用以下代码:Javascript Aurelia start setRoot给出未指定applicationHost的错误,javascript,typescript,aurelia,codesandbox,Javascript,Typescript,Aurelia,Codesandbox,使用以下代码: import { Aurelia } from "aurelia-framework"; export async function configure(aurelia) { aurelia.use.standardConfiguration().developmentLogging(); await aurelia .start() .then(a => a.setRoot()) //.then(a => a.setRoot("a
import { Aurelia } from "aurelia-framework";
export async function configure(aurelia) {
aurelia.use.standardConfiguration().developmentLogging();
await aurelia
.start()
.then(a => a.setRoot())
//.then(a => a.setRoot("app.js", document.body))
.catch(ex => {
document.body.textContent = `Bootstrap error: ${ex}`;
});
}
import {Aurelia} from 'aurelia-framework';
export function configure(aurelia: Aurelia) {
aurelia.use.basicConfiguration();
aurelia.start().then(() => aurelia.setRoot());
}
我得到这个错误:
引导错误:错误:未指定applicationHost
如果我切换到使用。然后(a=>a.setRoot(“app.js”,document.body))
而不是。然后(a=>a.setRoot())
一切正常
在Aurelias自己的快速入门指南中,他们使用以下代码:
import { Aurelia } from "aurelia-framework";
export async function configure(aurelia) {
aurelia.use.standardConfiguration().developmentLogging();
await aurelia
.start()
.then(a => a.setRoot())
//.then(a => a.setRoot("app.js", document.body))
.catch(ex => {
document.body.textContent = `Bootstrap error: ${ex}`;
});
}
import {Aurelia} from 'aurelia-framework';
export function configure(aurelia: Aurelia) {
aurelia.use.basicConfiguration();
aurelia.start().then(() => aurelia.setRoot());
}
如果在代码中切换到使用.basicConfiguration
,仍然会出现相同的错误
要复制的代码沙盒:
在自动引导中,
aurelia引导程序
检测具有aurelia app
属性的元素,并根据指定的值,将主条目加载到引导中,其中包含关于哪些元素承载这些aurelia app
属性的信息。这就是为什么不需要任何参数就可以执行setRoot()
。第一个参数是app.js
,第二个参数由上述检测自动提供
当您像在问题代码块中那样手动引导时,没有关于root的信息,因此出现了您所看到的错误。因此,提供第二个参数是正确的,也是标准的做法。我认为编写的代码是正确的。我相信在使用Webpack时,对setRoot的空调用不起作用,因为Webpack需要您明确说明需要加载哪些模块。如果让我猜的话,我会猜我们的CodeSandbox“loader”的工作方式也有类似的问题。@AshleyGrant一开始我也怀疑“CodeSandbox loader”。然而,我用Aurelia脚本进行了测试,得到了完全相同的结果。修改了中的代码。我尝试在两个示例中设置
,但仍然得到相同的错误。请参见Codesandbox
。在传统设置中,应用程序的条目是aurelia bootstrapper
,它负责查找具有属性的元素:aurelia-app
或data-aurelia-app
,并基于这些属性的值进行引导。你在这些沙盒中拥有的是不同的,你没有使用aurelia bootstrapper
来启动应用程序,而是从几行简单的JS开始。