Angular控制器返回未定义

丹威尔曼

我正在使用继承的旧版VB.Net应用程序。ng-app和ng-controller指令都出现在根母版页的HTML元素上:

<html runat="server" id="html" ng-controller="MasterController">

ng-app属性在页面的代码隐藏中设置。当我运行页面并查看源代码时,它就会出现。该应用程序仅限于模块ng-app="myModule"

控制器也是在add_load母版页中传递给函数的函数中定义的,它不在主体的末尾,但离它不远:

Sys.Application.add_load(function () {

        var module = angular.module('myModule');
        var MasterController = function ($scope, $compile) {
            ... // stuffs
            }
        };

        module.controller('MasterController', ["$scope", "$compile", MasterController]);

    });

在本地,这可以正常工作(或似乎可以正常工作),我在控制台中看不到任何错误。但是,该应用程序现已部署到暂存环境中,并且在该环境的浏览器控制台中,我看到一个Angular错误:

[ng:areq]不是函数未定义

暂存区域和我的本地环境之间几乎没有区别,这些区别主要是.Net脚本捆绑程序用于连接和最小化一堆JS文件(包括Angular)和应用程序使用的数据。AFAIK没有其他差异。

我认为在本地启用捆绑功能时,捆绑程序不会引起此问题,并且看不到错误。我也看不到传递给应用程序的数据引起了问题(它是客户数据,帐户数据等),因为它甚至没有在此特定控制器中使用。

大卫·L

不要使用函数表达式语法,因为可以在分配变量之前调用该变量。改用最佳实践指南中的函数声明语法

另外,由于您正在传递函数引用,因此请完全拉出注入部分以确保您的代码具有最小化安全性。

var module = angular.module('myModule');
function masterController($scope, $compile) {
    ... // stuffs
}

masterController.$inject = ["$scope", "$compile"];

module.controller('MasterController', masterController);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

角度指令控制器“ this”返回未定义

未定义参数“控制器”

为什么未定义控制器?错误:未定义的索引:控制器

scope()函数在AngularJS控制器中返回未定义

jQuery Ajax 从控制器操作方法返回未定义

getOwnerComponent()在按需嵌入哪个视图的控制器中返回未定义

jQuery Ajax从asp.net核心控制器的POST操作返回未定义的结果

Rspec控制器规范返回未定义的方法“ where”

来自路由的 EmberJS 模型在控制器中返回未定义

在控制器内部未定义用打字稿编写的Angular服务

从Angular控制器访问输入字段导致未定义

如何在 Angular 1.6 中加载控制器(参数“simpleController”不是函数,未定义)

TypeError:$ scope在Jasmine的Angular控制器单元测试中未定义

$ scope.form。$ error在Angular控制器中未定义

Angular 1.5 ES6“控制器未功能未定义”错误

Angular ui.router无法断言控制器,未定义

控制器不是函数,未定义,但在全局定义控制器时

AngularJS 1.3.7中未定义控制器

在角度控制器中未定义$ compile

未定义requirejs angularjs控制器

$ scope.data在控制器中未定义

Laravel 启动变量在控制器中未定义

rails link_to控制器方法未定义

控制器(CakePhp)中的未定义索引

控制器中的数据未定义

找不到AngularJS控制器,未定义

TypeError:无法读取未定义的属性“控制器”

Laravel控制器错误:未定义变量

ng-model在控制器中未定义