2016-09-01 7 views
-1

以下は私のコードです angularJSを介してナビゲーション(navlinks)をクリックすると、h2タグでmaintitleを動的に変更する必要があります。事前にページのタイトルを動的に変更する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

@Philのやり方もいいですが、私はスニペットを私が知っているように編集しました。 – 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

どのようにしてメインリンクがナビリンクをクリックすると動的に変化しますか? –

関連する問題