【问题标题】:Angular 2 is throwing and error if I don't have .js in my import statements如果我的导入语句中没有 .js,Angular 2 会抛出错误
【发布时间】:2016-05-06 10:06:15
【问题描述】:

我按照 angular.io 的 5 分钟快速入门中的说明进行操作,一切正常。我使用时不必声明.js

import {Component} from 'angular2/core';

然后我开始使用 templateUrl 来加载其他组件

import {NavMenuComponent} from '../nav/navMenu';
@Component ({
    selector: 'my-app',
    templateUrl: 'main.html',
    directives: [NavMenuComponent]
})
export class AppComponent {}

当我运行代码时,我收到一条错误消息,提示找不到 localhost:300/src/nav/navMenu

但是如果我在末尾添加一个 .js

 import {NavMenuComponent} from '../nav/navMenu.js';

它工作正常。我已经将 index.html 设置为..

<script>
    System.config({
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js'
            }
        }
    });
</script>

难道不应该这样我就不必再在导入时使用 .js 扩展名了吗?提前致谢。

【问题讨论】:

  • 要么在系统配置中更改您的包,要么将src 文件夹更改为app
  • @Langley,我不关注。 angular.io 没有系统配置文件。请您更具体地说明一下修复方法。
  • 不是 config.js 文件,您在代码中拥有的 System.config({ packages: { app: { 部分。
  • 您的 System.config 指定在 app 包下的内容上使用默认扩展名 js,但就我所见,您的组件在 src 下而不是 app 下: localhost:300/src/nav/navMenu 这有意义吗?
  • 我想是的。所以我必须将 app 更改为 src 或创建一个带有 defaultExtension 的 src?对吗?

标签: javascript angularjs angular angular2-template angular2-directives


【解决方案1】:

解决方案正是上面@Langely 发布的。一旦我添加了必要的文件夹,它就可以工作了。最后,我把所有东西都放在了一个可以处理所有事情的伞下。

app
-- controllers
    -- file.ts

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多