2014-10-10 26 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

相关问题