在页面上,我有几个Angular模块。 对于每个模块,我定义一个包含模块版本的常量。
var module1 = angular.module('module1').constant('version', '1.2.3');
var module2 = angular.module('module2').constant('version', '2.0.0');
...
我虽然在模块中定义了 常量。但是当我在 module1 中使用常量时,我得到的值是'2.0.0'......
有没有办法定义一个适合模块的常量(或其他任何东西)?
编辑:对于替代解决方案,您能否解释一下如何使用它,例如在控制器声明中?
module2.controller('myCtrl', function( $scope, $http, $q, ..., version ){
// Here I can use the constant 'version'
}
答案 0 :(得分:6)
一个非常好的问题。我能想到快速解决这个问题:
public static void main(String ... args) {
Function<Number, char[]> func =
convert((Number o)->o.toString(), o->o.toCharArray()).andThen(Function.identity());
}
public static <A, B, C> Function<A, C> convert(Function<A, B> c1, Function<B, C> c2) {
return t -> c2.apply(c1.apply(t));
}
我不知道它适合您的需求。但我希望它有所帮助。
主要问题是Angular中的命名。您不能为服务/常量/值等具有相同的名称。它们将被覆盖。我用&#34;命名空间&#34;解决了这个问题。就像我上面给你看的那样。
注入名称空间的示例:http://codepaste.net/5kzfx3
修改强>
对于您的示例,您可以像这样使用它:
(?i)\b(?=[a-z]*\d)[a-z\d]{3,}\b
^^^^^^^^^^^^
答案 1 :(得分:1)
这是因为module2重写了module1常量。
您可以使用moduleName.version
作为名称,但无法使用相同的名称。