控制器构造函数不止一次调用

时间:2016-01-22 06:08:30

标签: javascript angularjs controller

我有一个简单的控制器

angular.module('datahubApp')
  .controller('LoginController',[ '$scope' , '$resource', LoginController]);

function LoginController($scope,$resource){
    console.log('Constructor called');
}

我在两个不同的组件的2个地方使用了这个,在同一个视图中

<div ng-controller="Logincontroller as ln"> </div>

<div ng-controller="Logincontroller as ln"> </div>

现在,当我运行应用程序时,我在控制台中看到了这个

Constructor Called
Constructor Called
Constructor Called

问题1:

所以,这被称为三次。这是正常的。

问题2: 在这种情况下,我如何在组件之间传递范围变量?

1 个答案:

答案 0 :(得分:0)

为什么在视图中两次使用相同的控制器。只使用一次,它会很完美。

您可以使用:

<div ng-controller="Logincontroller as ln">

   <div></div> <!-- Your first div -->

   <div> </div> <!-- Your second div -->

</div>

每次在视图中找到时,AngularJS都会调用控制器。无论在视图中有多少时间。