使用打字稿时出现“未捕获的 ReferenceError:未定义角度”

Posted

技术标签:

【中文标题】使用打字稿时出现“未捕获的 ReferenceError:未定义角度”【英文标题】:I am getting "Uncaught ReferenceError: angular is not defined" when using typescript 【发布时间】:2017-10-31 23:10:24 【问题描述】:

我刚刚从视频教程中开始使用 angularjs 学习打字稿。当我尝试将角度模块放入我的“app.ts”文件中时,默认情况下该文件是后端的主文件。这是我的 app.js 代码:

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



console.log("This is a TS file"); 


angular.module('classProjectApp', ['ngRoute'])
    .config(function ($routeProvider) 
        console.log("in Config()");
    );

我在 index.html 文件中添加了 angularjs 文件,如下所示:

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>TypeScript HTML App</title>
    <link rel="stylesheet" href="app.css" type="text/css" />
    <script src="app.js"></script>
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/angular-route.min.js"></script>
</head>
<body>
    <h1>TypeScript HTML App</h1>

    <div id="content"></div>
</body>
</html>

尽管如此,我得到一个错误

未捕获的 ReferenceError:未定义角度

虽然视频教程中的相同示例可以正常工作。

附:在 index.html 文件中为 angular 添加引用时,我必须放置相对路径(Scripts/.../.../angular.js),而在视频教程示例中只是使用“angular.js”引用它。

谢谢。

【问题讨论】:

script 标记为angularjs 应该放在第一位。 &lt;script src="app.js"&gt;&lt;/script&gt; 应该去下面 你想做什么?角 1 或角 2?为什么 .ts 文件会出现? 【参考方案1】: 您应该将angularjs 引用移到顶部 app.js 应该转到下面。 你也应该在html标签上定义ng-app="classProjectApp"

试试下面的代码而不是你的代码

<html ng-app="classProjectApp" lang="en">
<head>
    <meta charset="utf-8" />
    <title>TypeScript HTML App</title>
    <link rel="stylesheet" href="app.css" type="text/css" />
     <script src="Scripts/angular.js"></script>
     <script src="Scripts/angular-route.min.js"></script>
     <script src="app.js"></script>

</head>
<body>
    <h1>TypeScript HTML App</h1>

    <div id="content"></div>
</body>
</html>

【讨论】:

您好,感谢您的回复。我试过这个,但遗憾的是我仍然得到同样的错误。我还收到另一个错误 Uncaught ReferenceError: angular is not defined at app.js:4 angular.js:4920 Uncaught Error: [$injector:modulerr] Failed to instantiate module classProjectApp due to: Error: [$injector:nomod] Module 'classProjectApp' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 您好,感谢您的回复。我试过这个,但遗憾的是我仍然得到同样的错误。我还收到另一个错误 Uncaught ReferenceError: angular is not defined at app.js:4 angular.js:4920 Uncaught Error: [$injector:modulerr] Failed to instantiate module classProjectApp due to: Error: [$injector:nomod] Module 'classProjectApp' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 你也应该在 html 标签上定义 ng-app="classProjectApp" @MightyGodLoki 嘿,我猜我弄乱了 index.html 文件中引用的顺序。该应用程序现在可以运行。非常感谢您花时间回答。欣赏它。 :)

以上是关于使用打字稿时出现“未捕获的 ReferenceError:未定义角度”的主要内容,如果未能解决你的问题,请参考以下文章

将模糊搜索与猫鼬一起使用时出现打字稿错误

将模糊搜索与猫鼬一起使用时出现打字稿错误

在 AOT 中构建 Angular 模块时出现打字稿错误

编译节点模块时出现打字稿错误

使用带有打字稿的 react-bootstrap Form.Label 时出现类型错误

使用带有 lit-html 的打字稿编写测试时出现“语法错误:无法在模块外使用 import 语句”