簡體   English   中英

AngularJS-路線變更的更新控制器

[英]AngularJS - Update Controller on Route Change

設定

 app.controller('headerController', ['$scope', '$routeParams', function($scope, $routeParams) {
     $scope.data = $routeParams;
 }]);

 app.config(['$routeProvider',
     function ($routeProvider) {
         $routeProvider.
             when('/:url', {
                 template: '<h2>Hello World</h2>'
             })
 }]);

布局

<body>
    <div ng-controller="headerController">
      Current Url:{{data.url}}
    </div>

    <div ng-view></div>

    <ul>
       <li>
          <a href="#/pageA">Page A</a>
       </li>
       <li>
         <a href="#/pageB>Page B</a>
     </li>
</body>

問題

我希望標題部分在每次路由更改時都使用當前URL不斷更新。 當我第一次加載我的應用程序時,此方法有效。 但是,如果更改路由,則控制器不會更新為新的URL。

我的問題不是解決這個確切的問題,因為我知道還有其他方法可以解決此問題,而是使用此設置來解決。 換句話說,我需要知道如何在視圖之外為我的當前路線提供控制器,並在每次更改路線時使該控制器更新。

您應該嘗試使$ scope.data為函數來重新評估它。

否則,建議您聽onRouteChangeSuccess觀看URL更改。

我嘗試了您的代碼,並進行了一些細微的更改,例如以下內容,它在使用firefox時非常適合我。 更改后,URL正確更新為頁面A或頁面B

我可能還不明白這個問題?

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

app.controller('headerController', ['$scope', '$routeParams', function($scope, $routeParams) {
     $scope.data = $routeParams;
 }]);

 app.config(['$routeProvider',
     function ($routeProvider) {
         $routeProvider.
         when('/:url', {
             template: '<h2>Hello World</h2>'
         })
 }]);



<html ng-app="app">
<head> 
    <script src="angular.min.js"></script>
    <script src="angular-route.js"></script>
    <script src="controller.js"></script>
</head>
<body>
    <div ng-controller="headerController">
      Current Url:{{data.url}}
    </div>

    <div ng-view></div>

    <ul>
       <li>
          <a href="#/pageA">Page A</a>
       </li>
       <li>
          <a href="#/pageB">Page B</a>
       </li>
</body>

干杯

薩科

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM