【发布时间】:2015-10-23 09:42:00
【问题描述】:
我有以下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>
【问题讨论】:
标签: html angularjs angularjs-ng-route angularjs-controlleras