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(){});