【问题标题】:import * as angular from 'angular' inside app.module.ts file从 app.module.ts 文件中的 'angular' 导入 * as angular
【发布时间】:2017-06-30 19:57:56
【问题描述】:

我已将 angular1 应用程序升级为使用 angular2 引导(升级选项),但在使用 systemJS 配置导入 angular 之后:

map: {... 'angular': 'npm:angular/angular.js' ... }

浏览器发送错误:

systemjs.import error: Error: (SystemJS) angular.module is not a function
    TypeError: angular.module is not a function
        at execute (http://msoqa05.devlab.ad:8088/home/bl/app.module.js:88:21)
        at ZoneDelegate.invoke (https://unpkg.com/zone.js@0.7.4?main=browser:242:26)
        at Zone.run (https://unpkg.com/zone.js@0.7.4?main=browser:113:43)
        at https://unpkg.com/zone.js@0.7.4?main=browser:520:57
        at ZoneDelegate.invokeTask (https://unpkg.com/zone.js@0.7.4?main=browser:275:35)
        at Zone.runTask (https://unpkg.com/zone.js@0.7.4?main=browser:151:47)
        at drainMicroTaskQueue (https://unpkg.com/zone.js@0.7.4?main=browser:418:35)
        at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.7.4?main=browser:349:25)
    Error loading http://msoqa05.devlab.ad:8088/home/bl/app.module.js

也许我不明白,但是为了导入 angular 我需要在 systemjs.config 中映射它?为什么?

我正在尝试降级 app.module.ts 中的 angular2 组件:

import * as angular from 'angular'; 
import { downgradeComponent } from '@angular/upgrade/static';

angular.module('myApp')
    .directive(
        'helloWorld',
        downgradeComponent({component: HelloWorldComponent}) as angular.IDirectiveFactory
    );

ts 编译没问题,但是浏览器不支持它,我得到这个错误。 angular.module 是 angularJS 的基础?

【问题讨论】:

  • 我检查了日志:angular.module 未定义,所以我做错了。角度被定义为一个模块

标签: angular typescript systemjs


【解决方案1】:

这样做解决了问题: 无需使用 systemjs 导入 Angular。

import * as _angular_ from 'angular';

declare global {
  const angular: typeof _angular_;
}

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 2017-06-07
    • 2023-01-07
    • 2018-05-19
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    相关资源
    最近更新 更多