angular - import * as angular from 'angular' inside app.module.ts 文件

标签 angular typescript systemjs

我已经将 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 的基础?

最佳答案

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

import * as _angular_ from 'angular';

declare global {
  const angular: typeof _angular_;
}

关于angular - import * as angular from 'angular' inside app.module.ts 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42193778/

相关文章:

Angular::从嵌套导出链接到父 'router-outlet'

javascript - 在 Angular 中将一个数组类转换为另一个数组类

typescript - 为什么我无法访问抽象基类的属性?

gulp - 在多个 Aurelia 项目中共享组件

javascript - 如何从捆绑文件中导入命名的 SystemJS 模块?

angular - Angular 客户端错误跟踪的可用选项?

angular - NG-bootstrap 和 Angular 9 兼容性

javascript - 针对数字、字母或其他组的关键事件过滤

typescript 推断返回的数组类型元素

javascript - 将 ES6 与 Angular2 rc3 一起使用时需要未捕获的反射元数据垫片