使用以下代码:
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}`;
});
}
我收到此错误:
引导错误: 错误: 未指定应用程序主机。
如果我切换到使用.then(a => a.setRoot("app.js", document.body))
而不是.then(a => a.setRoot())
一切正常。
在Aurelias自己的快速入门指南中,他们使用以下代码:
import {Aurelia} from 'aurelia-framework';
export function configure(aurelia: Aurelia) {
aurelia.use.basicConfiguration();
aurelia.start().then(() => aurelia.setRoot());
}
如果我在代码中切换到use.basicConfiguration
,我仍然会收到相同的错误。
https://aurelia.io/docs/tutorials/creating-a-todo-app#getting-ready-to-render
要重现的代码沙盒:
https://codesandbox.io/s/0x4wvlly90
在自动引导中,aurelia-bootstrapper
检测具有aurelia-app
属性的元素,并根据指定的值,将主条目加载到引导程序,其中包含有关哪些元素托管这些aurelia-app
属性的信息。这就是为什么你可以在没有任何争论的情况下做setRoot()
。第一个参数app.js
,第二个参数由上述检测自动提供。
当您像在问题代码块中一样手动引导时,没有关于 root 的信息,因此您看到的错误。因此,您提供第二个参数是正确的标准方法。