2013-07-18 7 views
3

Рассмотрим следующие AngularJS приложения:Почему контроллер создан дважды?

Метод addPane() толкает панель в список панели контроллера, paneCount() возвращает его длину. После создания 3 панели, метод доступа к paneCount() от связывания {{paneCount()}} и непосредственно в тесте: scope.paneCount() возвращает 0.

Оказывается, что AngularJS создает два экземпляра контроллера - один доступный из методов контроллера, другой из прицела. Кто-нибудь знает, почему необходимо создать два экземпляра? Есть ли способ получить доступ к тем же свойствам как от методов контроллера, так и от области видимости?

ответ

1

проблема заключается в определении вашего контроллера! вы дважды определили область действия. один раз в самом контроллере и один раз в определении директивы tabs. определение директивы переопределяет область действия контроллера, и поэтому счет будет неправильным.

// scope: {}, not necessary because defined in controller ctrl

надеюсь, что это помогает :)

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