我有以下config
和controllers
.config(function($routeProvider){
$routeProvider
.when('/', {
templateUrl: 'page-home.html',
controller: 'homeController',
controllerAs: 'hctrl'
})
.when('/about', {
templateUrl: 'page-about.html',
controller: 'aboutController',
controllerAs: 'actrl'
})
.when('/contact', {
templateUrl: 'page-contact.html',
controller: 'contactController',
controllerAs: 'cctrl'
});
})
.controller('homeController', function(){
this.pageClass = 'page-home'
})
.controller('aboutController', function(){
this.pageClass = 'page-about'
})
.controller('contactController', function(){
this.pageClass = 'page-contact'
});
当我在index.html
.
<div class="page {{pageClass}}" ng-view></div>
由于我不使用$scope
,因此仅编写是{{pageClass}}
行不通的。我怎样才能解决这个问题controller as syntax
?
编辑
我得到了几个很好的答案。如果您想controllerAs
用不同的名称命名您的值,我还发现了另一种方法:hctrl
和 actor
(ctrl
如我上面的代码):
您可以在 html 中执行此操作:
<div class="page {{hctrl.pageClass || actrl.pageClass || cctrl.pageClass}}" ng-view></div>