设置在视图,服务和控制器中使用的常量的最佳方法是什么。
$ rootScope或.constant()?
我尝试.constant('CHAR_LIMIT', 10);
,但这不能在视图{{CHAR_LIMIT}}
答案 0 :(得分:3)
您确实可以向模块添加常量:
angular.module('app').constant('CHAR_LIMIT', 10);
然后在Angular允许的任何地方使用依赖注入注入它:
angular.controller('someCtrl', ['CHAR_LIMIT', function(CHAR_LIMIT){
// Use the constant here
}]);
如果您需要在所有视图模板中使用它,可以将其作为属性添加到运行块中的$rootScope
:
angular.run(['$rootScope', 'CHAR_LIMIT', function($rootScope, CHAR_LIMIT){
$rootScope.CHAR_LIMIT = CHAR_LIMIT;
}]);
然后您可以在视图模板中使用它,如下所示:
{{CHAR_LIMIT}}
注意:如果在链接到模板的子作用域中显式定义CHAR_LIMIT属性,则将使用该值,因为它将“覆盖”$rootScope
中设置的值。
希望有所帮助!
答案 1 :(得分:1)
您必须像控制服务一样将其注入控制器,然后使用它(如下所示):
var myCtrl = ['$scope','CHAR_LIMIT', function($scope,CHAR_LIMIT){
$cope.myVar = CHAR_LIMIT;
}]