我想将模块名称,控制器名称等放到字符串常量中,以便在需要时可以轻松更改它们(与在每个文件中修复它相比)。
所以我有这段代码:
angular
.module("app.admin.home")
.controller("HomeController", HomeController);
我希望它有这个(或类似的):
angular
.module(moduleConstants.admin)
.controller(controllerConstants.adminHome, HomeController);
是否有正确的方法在Angular中定义这种类型的常量(普通注入在这种情况下不起作用)。我想我可以只创建全局javascript常量,但也许有更好的方法来实现这一点,一些常见的方法来定义角度中的常量。我有一个强大的C#背景,我觉得常常需要注入常量,它们不是可以有不同实现的抽象代码,因此注入它而不仅仅是引用听起来是错误的。
答案 0 :(得分:1)
为避免污染全局名称空间,您可以使用闭包:
(function (moduleConstants, controllerConstants) {
angular
.module(moduleConstants.admin)
.controller(controllerConstants.adminHome, HomeController);
})({admin: "app.admin.home"},
{adminHome: "HomeController"});
答案 1 :(得分:0)
根据文档,使用角度js定义常量的正确方法是使用:Constants
这可以是一个简单的实现:
angular.module('config', [])
.constant('CONSTANT_YOU_NEED', {
name: 'test',
valueOfConst: '3.14'
});
但我想你不能将它用于模块或控制器,而只是传递给它们