У меня есть два контроллера AngularJS, где контроллер 1 всегда отображается в представлении, а контроллер 2 может меняться из вида в режим просмотра. Мне нужно убедиться, что контроллер 1 имеет доступ к некоторым переменным области. Таким образом, при загрузке, если я передаю весь объем контроллера 2 контроллеру 1, это повредит производительности страницы?AngularJS Область пропуска между контроллерами Производительность
ответ
Доступ к разграничению между контроллерами возможен, но только через наследование. Я уверен, что вы не можете «отправить» область на другой контроллер и полностью заменить его.
Я предлагаю либо трансляцию событий с данными между контроллерами, либо их хранение в службах AngularJS (factory
). Поскольку это синглтоны, данные остаются неизменными до тех пор, пока вы не перезагрузите приложение.
EDIT: Что касается производительности, даже если коэффициент усиления очень мал, я бы предложил использовать службу для хранения данных. Таким образом, он действует как простой DTO и не требует двойного связывания (если он вам не нужен), что означает, что цикл $digest
немного быстрее.
С уважением
Хмм, но это неправда. Вы можете обмениваться областью, используя корневой каталог или фабрику. Но меня больше беспокоит производительность. –
Вы все еще не «разделяете» сферу в этом смысле. '$ rootScope' является матерью всех областей. Все новые области создаются как дети '$ rootScope' и возможные области между новой областью и' $ rootScope'. До тех пор, пока вы уверены, что контроллер 2 является дочерним элементом контроллера 1, вы не можете получить доступ к данным, зависящим от конкретной области, на контроллере 1 от контроллера 2. Я бы предложил использовать службы, как я написал, или сохранить их на '$ rootScope '. Это ваш designchoice :) –
Да, я делаю то, что вы говорите. Но мой вопрос заключается в том, что этот метод вредит производительности? –
- 1. Связь между контроллерами - angularjs
- 2. Связи между контроллерами - angularjs
- 3. Обмен данными между контроллерами, AngularJS
- 4. Angularjs обмен данными между контроллерами
- 5. Использование границ между контроллерами в Angularjs
- 6. AngularJS: Связь между контроллерами разных видов
- 7. AngularJS, передающий данные между контроллерами
- 8. Обмен данными между контроллерами - Angularjs
- 9. Обмен данными между контроллерами AngularJS
- 10. AngularJS Общая служба между контроллерами
- 11. AngularJS: параметр проход между контроллерами
- 12. AngularJS: Передача переменных между контроллерами
- 13. общее состояние между контроллерами - angularjs
- 14. AngularJS: обслуживание данных между контроллерами
- 15. AngularJS - как делиться функциональностью между контроллерами
- 16. AngularJS делится асинхронными данными службы между контроллерами
- 17. angularJS: данные для фильтрации данных между контроллерами
- 18. Параметры протокола Ionic/AngularJS между контроллерами
- 19. Обмен данными между контроллерами с сервисом (AngularJS)
- 20. Как взаимодействовать между различными контроллерами в AngularJS
- 21. Поделитесь ресурсом между контроллерами AngularJS и сервисом
- 22. Обменный код/способ/функция между контроллерами AngularJS
- 23. Обмен данными между контроллерами в angularjs
- 24. Не удается обмен данными между контроллерами AngularJS?
- 25. AngularJS Двустороннее связывание между контроллерами в Modal
- 26. Не удается обмен данными между контроллерами AngularJs
- 27. Служба AngularJS Передача данных между контроллерами
- 28. AngularJS Pass Database Данные между контроллерами
- 29. Пропуск объекта между контроллерами в Angularjs
- 30. AngularJS - Обмен данными между контроллерами от json
Попутный прицелы, вероятно, не то, что вы хотите (* Я даже не знаю, как вы бы сделать это *). Вы пытались поместить необходимые данные в общие угловые службы? – doldt
Мы можем сделать это с помощью сервисов или корнеплодов. моя точка зрения заключается в том, что я должен иметь возможность изменять некоторые переменные области видимости с контроллера 1 без изменения большого количества кода контроллера 2. У контроллера нет собственных переменных области. –