2014-10-10 31 views
1

每次我改變通過鏈接的路徑類似於下面的AngularJS控制器執行的每個視圖路由

<li><a href="#/home">Home</a></li> 

控制器在路由器定義視圖獲取再次運行時間。

config(['$routeProvider', '$locationProvider', 
    function($routeProvider, $locationProvider) { 
     // $locationProvider.hashPrefix('!'); 

     $routeProvider.when('/home', { 
      templateUrl: 'partials/home.html', 
      controller: 'mainCtrl' 
     }); 
     $routeProvider.when('/test', { 
      templateUrl: 'partials/test.html', 
      controller: 'testCtrl' 
     }); 
     $routeProvider.otherwise({ 
      redirectTo: '/home' 
     }); 
    } 
]); 

我不認爲這是默認的行爲(我發現的文件中沒有提到它),但我看不出有什麼問題。

P.S.

我沒有ng控制器分配給我的模板中的任何DOM元素,因爲我見過其他人有類似的問題,這是問題。

+0

JSFiddle請 – 2014-10-10 11:54:06

回答

3

這是一個默認行爲。
基本上控制器是用來自變角的函數。所以每次打開與控制器關聯的頁面時都需要調用它。每次瀏覽頁面角度都會創建新的範圍。

+0

我以爲它可能是(這就是爲什麼我提到它),但後來我看到這個[問題](http://stackoverflow.com/questions/21401822/run-once-when-controller-負載角),這讓我覺得不然。 – Preom 2014-10-10 12:20:04

+0

是的,他也在說同樣的事情。 「當控制器加載時,該功能只被調用一次。」但是當控制器被加載並且每當關聯頁面被打開時它將被加載。 :) – 2014-10-10 12:54:16

相關問題