繁体   English   中英

Typescript AMD外部模块加载,角度未定义

[英]Typescript AMD external module loading, angular is not defined

我知道这个主题已经有一些类似的问题,但是它们都无济于事。 我想在使用requirejs和Typescript的项目中使用angular.js。

我有一个模块,在这里我使用angular来创建服务模块:

/// <reference path="../../../typings/angularjs/angular.d.ts" />
...
var services = angular.module('services', []);
...
export = services;

这段代码编译没有错误,但是在创建的js文件中,没有angular.js依赖项:

define(["require", "exports"], function(require, exports) {
...
}

当我运行该应用程序时,浏览器会抱怨:Uncaught ReferenceError:未定义角度

我的猜测是,除了引用它之外,我还应该以某种方式导入该角度,但是我尝试过的所有路径均无用。

这是我的require.js配置,以备不时之需:

require.config({

    paths: {
        angular: '../lib/angular/angular',
        ...
    },
    shim: {
        angular : {exports : 'angular'},
        ...
    }
)}

你能帮我吗,这里缺少什么? 谢谢。

使用参考注释时:

/// <reference path="../../../typings/angularjs/angular.d.ts" />

您告诉编译器“我将确保在运行时可以使用此依赖项”。

如果要加载模块,则需要使用导入...

import angular = require('angular');

零建立这样做的方式是将angular.d.ts下一个文件到实际angular.js文件,所以你在导入语句中指定的路径是相同的两种方式-否则,使用您需要的配置摆弄路径。

您是否尝试过将以下内容添加到文件顶部

 /// <amd-dependency path="angular"/>

这应该使ts编译器将angular添加到定义列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM