Angular 构建无法在服务器上运行

2024-03-06

我正在尝试在服务器上运行我的 AngularJS 前端。我正在使用 Yeoman 来构建应用程序。我上传了非常基本的 hello world 应用程序,并获得了未加载 JavaScript 的纯 HTML 文本。 Chrome 中的控制台是这样说的:

Error: Unknown provider: aProvider <- a
    at Error (<anonymous>)
    at http://../scripts/vendor/d10639ae.angular.js:2627:15
    at Object.getService [as get] (http://../scripts/vendor/d10639ae.angular.js:2755:39)
    at http://../scripts/vendor/d10639ae.angular.js:2632:45
    at getService (http://../scripts/vendor/d10639ae.angular.js:2755:39)
    at invoke (http://../scripts/vendor/d10639ae.angular.js:2773:13)
    at Object.instantiate (http://../scripts/vendor/d10639ae.angular.js:2805:23)
    at http://../scripts/vendor/d10639ae.angular.js:4620:24
    at update (http://../scripts/vendor/d10639ae.angular.js:13692:26)
    at http://../scripts/vendor/d10639ae.angular.js:8002:24 d10639ae.angular.js:5526

有人有同样经历并知道出路吗?

EDIT:

'use strict';

yoAngApp.controller('MainCtrl',['$scope', '$window', function($scope, $window) {
    $scope.awesomeThings = [
        'HTML5 Boilerplate',
        'AngularJS',
        'Testacular'
    ];

    $scope.records = [{ title : 'one' }, { title : 'two' }, { title : 'three' }, { title : 'four' }];

    $scope.greet = function() {
        ($window.mockWindow || $window).alert('Hello ' + $scope.name);
    }
}]
);

我很确定您已经在生产服务器上使用了代码压缩器,对吗?

无论如何,Angular Js 的人说得很清楚 http://docs.angularjs.org/guide/di如果没有正确完成,使用压缩器可能会搞乱依赖注入。为什么会出现这种情况?看一看:

依赖注入与代码压缩器

function MyController($scope, $log) { ... }

在上面的代码片段中,您正在使用隐式 DI。 Angular 看到变量$scope并尝试将其与任何托管依赖项相匹配。在此示例中,它将与$scope object.

然而,在代码缩小之后,这将不起作用,因为结果将如下所示:

function a(b, c) { ... }

由于变量和函数名称被缩小,Angular 无法知道“a”到底是什么。

Solution

使用显式依赖注入配置。

var MyController = function($scope, $log) { ... }
MyController.$inject = ['$scope', '$log'];

在此代码片段中,您定义了哪些依赖项应通过将其名称数组附加到名为的控制器(或服务)的特殊属性来解析$inject。现在 Angular 会知道它应该解决$scope并将其作为第一个参数传递给MyController。然后就会解决$log并将其作为第二个参数传递。 这一切都是可能的,因为缩小器不会修改字符串变量的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 构建无法在服务器上运行 的相关文章

随机推荐