我知道这个话题已经有一些类似的问题了,但不知怎的,它们都没有帮助。 我想在一个使用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) {
...
}
当我运行应用程序时,浏览器会抱怨:未捕获的ReferenceError:angular未定义
我的猜测是,不管怎么说,除了引用它之外,我还应该输入角度,但是我试过的路径都没有。
以下是我的require.js配置,以备需要时使用:
require.config({
paths: {
angular: '../lib/angular/angular',
...
},
shim: {
angular : {exports : 'angular'},
...
}
)}
你可以帮助我,这里缺少什么? 感谢。
答案 0 :(得分:5)
使用参考评论时:
/// <reference path="../../../typings/angularjs/angular.d.ts" />
您告诉编译器&#34;我将确保此依赖项在运行时可用&#34;。
如果要加载模块,则需要使用导入...
import angular = require('angular');
这样做的零设置方法是将angular.d.ts
文件放在实际的angular.js
文件旁边,这样你在import语句中指定的路径都是相同的 - 否则,使用你的require配置来摆弄路径。
答案 1 :(得分:1)
您是否尝试将以下内容添加到文件顶部
/// <amd-dependency path="angular"/>
这应该使ts编译器为定义列表添加角度。