2016-03-27 21 views
2

Yönlendirici tarafından sağlanan geçerli denetleyiciye bağlı olarak denetleyici kapsamı dışında görüntülenen başlığı nasıl değiştiririm? Temel olarak, belirli bir yol çağrıldığında yüklenen mainMenu denetleyicim var. Ancak, görüş dışında, bir başlık olan kısmi dahil bulunmaktadır. Mevcut rotaya bağlı olarak bir başlığın içindeki çıkışı değiştirmek istiyorum. I ilave aşağıdaki kod yapısı:Açısal 1: Geçerli rotaya göre başlığı değiştir

<div ng-include="'partials/header.html'"></div> 
<div ng-view></div> 

/partials/header.html

<header ng-controller="HeaderCtrl"> 
     <h1>{{ currentTitle }}</h1> 
</header> 

/partials/main-menu.html

index.html

<div ng-controller="MainMenuCtrl"> 

</div> 

Yönlendirici

var TaskApp = angular.module('TaskApp', [ 
    'ngRoute', 
    'taskAppControllers' 
]); 

TaskApp.config(['$routeProvider', 
    function($routeProvider){ 
    $routeProvider. 
     when('/main-menu', { 
     templateUrl: "partials/main-menu.html", 
     controller: "MainMenuCtrl" 
     }). 
     otherwise({ 
     redirectTo: "/" 
     }); 
    }]); 

Kontrolörler:

var taskAppControllers = angular.module('taskAppControllers',[]); 

taskAppControllers.controller('TaskAppCtrl',[function(){}]); 
taskAppControllers.controller('DesktopCtrl',[function(){}]); 

taskAppControllers.controller('MainMenuCtrl', ['$scope','$http', 
function($scope, $http){ 
    $http.get('data/main-menu.json?' + Math.random()).success(function(data){ 
    $scope.mainMenuOptions = data; 
    }); 
    $scope.currentTitle = "Main menu" 
}]); 

taskAppControllers.controller('HeaderCtrl', ['$scope', 
function($scope){ 
    // 
}]); 
+0

Bu modülü kullanabilirsiniz https://github.com/ncuillery/angular-breadcrumb –

+0

$ rootScope üzerindeki başlığı ayarla –

cevap

4

Sen title

when('/main-menu', { 
    templateUrl: "partials/main-menu.html", 
    controller: "MainMenuCtrl", 
    title: 'Main Page' 
}). 

gibi bir şey Sonra (o rota değişiklikleri başarılı olduğunda kovuluyor) olay içeride $routeChangeSuccess yerleştirecektir olan her güzergah seçenekleri ile bir daha özellik ekleyebilirsiniz HeaderCtrl, ve sonra geçerli rota nesnesini tut ve başlığını al ve currentTitle kapsam değişkeni

$scope.$on('$routeChangeSuccess', function(event, current) { 
    $scope.currentTitle = current.title; 
}); 
+0

Angular'a yeni geldim, bana daha fazla bilgi verebilir veya '$ routeChangeSuccess' hakkında daha fazla bilgi verebilir misiniz? Etkinlik? – Kunok

+0

@Kunok güncellenmiş cevaba bak. –

+0

Çok iyi, bu mükemmel çalışıyor, Stackoverflow bana izin verir vermez bu cevabı kabul edeceğim. – Kunok