【问题标题】:'angular' is not defined while using Codekit使用 Codekit 时未定义“角度”
【发布时间】:2015-09-30 13:26:44
【问题描述】:

每次我保存 myApp.js 时,CodeKit 都会给我一个警告。当我通过 CodeKit 预览加载 index.html 时,firstNamelastName 变量看起来很好。我只是想让这个问题消失。

"var app = angular.module("myApp", []);
'angular' is not defined"

这是我的两个文件 index.htmlmyApp.js

index.html:

<html>
<script src="angular/angular.js"></script>
<script src="myApp.js"></script>

<body ng-app="myApp" ng-controller="myCtrl">
    <div>
        {{ firstName + " " + lastName }}
    </div>
</body>
</html>

myApp.js:

var app = angular.module("myApp", []);

app.controller("myCtrl", function($scope) {
    $scope.firstName    = "John";
    $scope.lastName= "Doe";
});

【问题讨论】:

  • 你试过把 ng-app="myApp" 放在 标签里吗?
  • 与 ng-app @RenanLopesFerreira 无关
  • @RenanLopesFerreira 是的,我刚刚尝试过,但仍然收到警告。
  • 你检查到angular.js的路径了吗?
  • &lt;script src="angular/angular.js"&gt;&lt;/script&gt; 好吗?我的意思是angular文件夹中有一个文件名angular.js在.html页面的根文件夹中的位置吗?

标签: javascript angularjs codekit


【解决方案1】:

这是由于 Code Linting 进程正在积极搜索语法错误而发生的。不幸的是,它没有意识到angular 是一个可用于您的 脚本文件的全局变量,因为它是在不同的文件中声明的。它实际上在浏览器(或预览窗格)中工作,但 Linting 不知道 angular 的存在。

您可以在 JavaScript 文件的顶部添加 /// &lt;reference path="angular/angular.js" /&gt;,以通知语法检查器实际声明 angular 变量的位置。

【讨论】:

    【解决方案2】:

    我没有尝试过 Claies 的解决方案,但我们在项目中所做的只是将其注册为全局,这样 Codekit 就不会抱怨。仅当您确定已定义角度时才执行此操作,否则它将隐藏错误。

    选项 1 - 用于 jshint

    将以下内容放入您的 JS 文件中:

    /*global angular:true */
    

    参考:https://incident57.com/codekit/help.html#jshint

    选项 2 - 适用于 jshint 和 jslint

    或者,您可以在 Codekit 配置中定义全局变量:

    1. 在 Codekit 中,打开“项目设置”
    2. 选择“语法检查器”
    3. 在“自定义全局变量”文本字段中,您可以输入逗号分隔的变量和函数列表,您知道这些变量和函数在 JS 之外的其他地方定义 脚本。

    参考:https://incident57.com/codekit/help.html#jslint

    【讨论】:

    • 仅供参考,我知道这是 3 年前的事情,但我仍然在 Google 上看到了这个,并且觉得它需要其他选项/进一步解释给遇到它的其他人。否则他们会认为 Claies 的参考路径答案是唯一的选择。总是最好呈现多个选项/路线。
    猜你喜欢
    • 2018-10-25
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2021-04-20
    • 2015-05-22
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多