Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Aurelia start setRoot给出未指定applicationHost的错误_Javascript_Typescript_Aurelia_Codesandbox - Fatal编程技术网

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开始。