2016-01-22 13 views
0

У меня есть простой контроллерконструктор контроллера вызывается несколько раз

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

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

Я использовал это в HTML в 2-х местах для двух различных компонентов, в ту же точку зрения

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

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

Теперь, когда я запустить приложение, я вижу это в консоли

Constructor Called 
Constructor Called 
Constructor Called 

Вопрос 1:

Итак, это называется трижды. Это нормально.

Вопрос 2: В этом случае, как передать переменную сферы между компонентами?

+0

Вы можете показать полный html?/создать плункер или jsfiddle? –

+0

нет больше кода у меня есть .. просто это он – madhairsilence

ответ

0

Почему вы используете один и тот же контроллер два раза в режиме просмотра. Используйте его только один раз, и он будет работать идеально.

Вы можете использовать как:

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

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

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

</div> 

AngularJS будет называть контроллер каждый раз, когда он нашел в представлении. Независимо от того, сколько времени стоит на месте.

Смежные вопросы