2016-09-01 4 views
-1

Unten ist mein Code, Ich muss den Haupttitel dynamisch in h2 Tag auf Klick der Navigation (Navlinks) durch angularJS ändern.Titel dynamisch ändern AngularJS

Vielen Dank im Voraus ..

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

 
portfolioApp.controller('navCtrl', ['$scope', '$location', function ($scope, $location) { 
 

 
    $scope.navLinks = [{ 
 
     Title: 'home', 
 
     LinkText: 'Home' 
 
    }, { 
 
     Title: 'about', 
 
     LinkText: 'About Us' 
 
    }, { 
 
     Title: 'portfolio', 
 
     LinkText: 'Portfolio' 
 
    }, { 
 
     Title: 'contact', 
 
     LinkText: 'Contact Us' 
 
    }]; 
 

 
    $scope.navClass = function (page) { 
 
     var currentRoute = $location.path().substring(1) || 'home'; 
 
     return page === currentRoute ? 'active' : ''; 
 
    }; 
 

 
$scope.maintitle = "Any Title"; 
 

 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.min.js"></script> 
 
<div ng-app="portfolioApp" ng-controller="navCtrl"> 
 
<h2>{{maintitle}}</h2> 
 
<header class="well sidebar-nav"> 
 
    <ul class="nav nav-list"> 
 
     <li ng-repeat="navLink in navLinks" ng-class="navClass('{{navLink.Title}}')"> 
 
      <a href='#/{{navLink.Title}}'>{{navLink.LinkText}}</a> 
 
     </li> 
 
    </ul> 
 
</header> 
 
    </div>

+1

einfachste Art und Weise; inject '$ rootScope' und setze' $ rootScope.maintitle' – Phil

+0

kannst du mir ein Codebeispiel besorgen. –

+0

@Phil's Weg ist auch gut, aber ich habe den Ausschnitt so bearbeitet, wie ich weiß. – Doruk

Antwort

0

Check Out This:

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

 
portfolioApp.controller('navCtrl', ['$scope', '$location', function ($scope, $location) { 
 
$scope.maintitle = "Some Thing"; 
 
    $scope.navLinks = [{ 
 
     Title: 'home', 
 
     LinkText: 'Home' 
 
    }, { 
 
     Title: 'about', 
 
     LinkText: 'About Us' 
 
    }, { 
 
     Title: 'portfolio', 
 
     LinkText: 'Portfolio' 
 
    }, { 
 
     Title: 'contact', 
 
     LinkText: 'Contact Us' 
 
    }]; 
 

 
    $scope.navClass = function (page) { 
 
     var currentRoute = $location.path().substring(1) || 'home'; 
 
     return page === currentRoute ? 'active' : ''; 
 
    }; 
 
    $scope.goToLink = function(navlink){ 
 
    $scope.maintitle = navlink.Title; 
 
    // fix location service accordin to your requirment 
 
    $location.path(navlink.Title); 
 
    } 
 

 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.min.js"></script> 
 
<div ng-app="portfolioApp"> 
 
<header class="well sidebar-nav"> 
 
    <ul class="nav nav-list" ng-controller="navCtrl"> 
 
     <h2>{{maintitle}}</h2> 
 

 
     <li ng-repeat="navLink in navLinks" ng-class="navClass('{{navLink.Title}}')"> 
 
      <a ng-click="goToLink(navLink)">{{navLink.LinkText}}</a> 
 
     </li> 
 
    </ul> 
 
</header> 
 
    </div>

+0

Vielen Dank Code Arbeit für mich ... –

+0

Willkommen Sag mir, wenn Sie mehr Hilfe brauchen! –

0
$scope.maintitle = "text you want"; 

EDIT: Es wird nicht funktionieren, da es aus Controller ist. Ich kann Ihnen raten, es in den Controller zu tragen, einen anderen Controller zu erstellen oder nach Möglichkeiten zu suchen, Objekte zu manipulieren, die nicht mehr im Controller sind.

+2

Das ist außerhalb des Bereichs des Controllers, Sie müssen den h2 in den Controller-Bereich setzen. – barha

+0

ich brauche dynamisch beim Klick auf die Navigation sollte sich der h2 Haupttitel ändern. –

+0

@barha's Antwort wird funktionieren. Holen Sie sich das h2-Element in den Controller. – Doruk

2
<div ng-app="portfolioApp"> 
<div ng-controller="navCtrl"> 
<h2>{{maintitle}}</h2> 
<header class="well sidebar-nav"> 
    <ul class="nav nav-list" > 
     <li ng-repeat="navLink in navLinks" ng-class="navClass('{{navLink.Title}}')"> 
      <a href='#/{{navLink.Title}}'>{{navLink.LinkText}}</a> 
     </li> 
    </ul> 
</header> 
<div> 
</div> 

und verwenden

$scope.maintitle = 'title' 
+0

Wie würde sich der Haupttitel beim Klick auf die Navlinks dynamisch ändern? –