2016-09-01 5 views
-1

Ниже мой код, Мне нужно динамически менять динамическое имя в теге h2 при нажатии на навигацию (navlinks) через angularJS.Изменить Название страницы Динамически AngularJS

Заранее спасибо ..

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

Простейшее путь; введите '$ rootScope' и установите' $ rootScope.maintitle' – Phil

+0

, можете ли вы получить мне пример кода. –

+0

@ Путь тоже хорош, но я отредактировал фрагмент работы так, как я знаю. – Doruk

ответ

0

Отъезд Это:

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

Спасибо, что работа кода для меня ... –

+0

Добро пожаловать Скажите, если вам нужна дополнительная помощь! –

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

EDIT: Это не будет работать, так как он находится вне контроллера. Я могу посоветовать переносить его в контроллер, создавать другой контроллер или искать способы манипулирования элементами, выходящими из контроллера.

+2

Это выходит за рамки контроллера, вы должны поместить h2 в область контроллера. – barha

+0

Мне нужно динамически по щелчку навигации, чтобы основное название h2 должно измениться. –

+0

Ответ @barha будет работать. получить элемент h2 внутри контроллера. – 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> 

и использовать

$scope.maintitle = 'title' 
+0

, как бы динамическое изменение динамического изменения нажатием навигационных клавиш. –