Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用角度常数声明控制器名称_Javascript_Angularjs_Constants_Angularjs Controller - Fatal编程技术网

Javascript 使用角度常数声明控制器名称

Javascript 使用角度常数声明控制器名称,javascript,angularjs,constants,angularjs-controller,Javascript,Angularjs,Constants,Angularjs Controller,我试图为我在角度项目中使用的所有字符串值声明常量。我的示例代码如下所示 //create module var myApp = angular.module("myApp",[]); //define constants for controller names myApp.constant("CONTROLLERS", { "LOGIN_CONTROLLER" : "loginCtrl", "HOME_PAGE_CONTROLLER" : "homePageCtrl" });

我试图为我在角度项目中使用的所有字符串值声明常量。我的示例代码如下所示

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

//define constants for controller names
myApp.constant("CONTROLLERS", {
    "LOGIN_CONTROLLER" : "loginCtrl",
    "HOME_PAGE_CONTROLLER" : "homePageCtrl"
});
现在,在各自的控制器文件中创建控制器时,我使用以下代码

myApp.controller(CONTROLLERS.LOGIN_CONTROLLER, function(){.....});
当我执行我的应用程序时,我在加载loginCtrl.js文件的过程中遇到以下错误

“未捕获引用错误:未定义控制器”

我是不是用错了角度常数


谢谢。

角度常数只能注入到角度函数中

directive('foo', function(CONTROLLERS){});
它们在注射外不可用

您是否正试图使用常量,因为您反对将指令名称保留为字符串?使用字符串是可以的,因为如果指令名称发生更改,您将遇到更大的问题


您是否正试图通过使用常量来解决其他问题?

一种解决方案是将常量声明为普通javascript变量:

var CONTROLLERS = {

    "LOGIN_CONTROLLER" : "loginCtrl",
    "HOME_PAGE_CONTROLLER" : "homePageCtrl"
}
这样你的代码就可以工作了

下面是一个例子:

您可以像这样尝试myApp.controller('CONTROLLERS.LOGIN\u controller',function(){});