У меня есть следующие config
и controllers
Использование ngRoute с «контроллером как» синтаксис в angularJS
.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>
Спасибо за это. Кстати, мое редактирование выше разумного подхода? –
Нет, что произойдет, если вы добавите новые маршруты? скажем, 20 маршрутов дополнительных маршрутов. Было бы разумным добавить еще 20? – ryeballar