У меня есть некоторые контроллеры с некоторым общим кодом, в частности $scope.$watch
, который идентичен для нескольких контроллеров. Как я могу поместить этот код в отдельный файл и импортировать общий код в различные контроллеры, которым это необходимо $watch
?Контроллеры AngularJS: переместить общий код в отдельный файл
8
A
ответ
7
Вы могли использовать службу, передав в сферу вашего контроллера:
angular.module('app').service("CommonFunctions", ['SomeService', function(SomeService) {
var commonFunctions = {};
commonFunctions.init = function(scope){
scope.$watch(function(){},function(){})
};
return commonFunctions;
}]);
angular.module('app').controller('Ctrl1',
['$scope','CommonFunctions',function($scope,CommonFunctions) {
CommonFunctions.init($scope);
}]);
angular.module('app').controller('Ctrl2',
['$scope','CommonFunctions',function($scope,CommonFunctions) {
CommonFunctions.init($scope);
}]);
Таким образом, вы используете рамки отдельного контроллера, но используя общий метод в качестве службы. Вы также можете использовать angular.extend($scope, AService)
в контроллере, если вы хотите, чтобы общая функциональность была фактически добавлена к областям контроллера.
Вот рабочий Fiddle: http://jsfiddle.net/rhcjdb7L/
Конечно, это очень здорово и все, но вы уверены, что вы не хотите использовать $rootscope.$broadcast()
? Это довольно хорошо написано: http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/
Смежные вопросы
- 1. Переместить рутину в отдельный файл
- 2. Принесите общий код в отдельный jsp
- 3. Переместить текстовые строки в отдельный файл
- 4. Переместить структуру в отдельный файл без разделения на отдельный модуль?
- 5. Sails.js - переместить функции api в общий файл
- 6. AngularJS помещает $ http service в отдельный файл
- 7. AngularJS - Поместить перехватчик $ http в отдельный файл
- 8. Контроллеры в AngularJS
- 9. Включите общий тестовый файл в код-код
- 10. Как переместить функции в отдельный файл в студии Android?
- 11. Контроллеры AngularJS
- 12. Общий код для нескольких проектов в AngularJS
- 13. Переместить все Javascript в отдельный файл в Django
- 14. Контроллеры зернистость в AngularJs
- 15. Отдельный код в ASP.NET
- 16. Spring и Thymeleaf: Как переместить JavaScript в отдельный файл .js
- 17. Рефакторинг вложенного класса - переместить в отдельный файл - visual studio 2008
- 18. Как переместить класс в отдельный документ?
- 19. Контроллеры AngularJS не работают
- 20. Могу ли я поместить общий код приложения в отдельный файл и загрузить его в различные скрипты?
- 21. Контроллеры AngularJS scope issue
- 22. angularjs: контроллеры с маршрутизаторами
- 23. angularJS контроллеры и PDF
- 24. Переместить настройку JButton в отдельный класс
- 25. Контроллеры AngularJS внутри контроллеров
- 26. Контроллеры AngularJS, вызывающие ошибки
- 27. Angularjs вложенных нг-контроллеры
- 28. Декларирование контроллеры AngularJS
- 29. Угловые контроллеры AngularJS
- 30. Angularjs: приоритетные исполнительные контроллеры
может обслуживать работу для этого? – worldask
Я уверен, что область действия в сервисе невозможна ... – EricC
@EricC $ scope будет просто параметром для сервисной функции. – cgTag