我想直接在html中使用几个常量(在控制器中几次)。
例如,这是主要的应用程序模块:
angular.module('website', []) .constant('ROUTES', (function () { return { SIGN_IN: '/sign/in' } })()) .config([..., 'ROUTES', function(..., ROUTES { $routeProvider.when(ROUTES.SIGN_IN, {templateUrl: 'pages/sign_in.html', controller: 'SignInController'}); }]);
因此,很清楚如何使用控制器中的常量。
但是我该怎么做:
<html ng-app="website"> <body> <a href="{{ROUTES.SIGN_IN}}">Sign in</a> </body> </html>
关键是将所有路线都放在一个地方。所以,我可以这样做,还是我选择了错误的方式?
恕我直言,更好的方法是使用$ rootScope。 在html中,每个范围都继承自$ rootScope,因此,如果当前作用域中不存在变量,则使用$ rootScope中声明的变量。
一种好的(IMHO)方法是在 运行 “阶段”中对此进行初始化
angular.module('myApp') .run(function ($rootScope) { $rootScope.ROUTES = ROUTES });