У меня есть более длинная функция jQuery для слайдера галереи изображений. У меня около 5 директив (все используют один и тот же слайдер с разными картинками). Поскольку я не хотел копировать и вставлять один и тот же код jQuery во все 5 контроллеров, я сделал это с помощью фабрики. Я поместил код jQuery в фабрику, а затем вызвал фабрику в каждом контроллере. Это не работает, но я не понимаю, почему. Кто-нибудь знает? Спасибо! РЕДАКТИРОВАТЬ: Jquery включен без углов и работает! Проблема не в самом jQuery, а в фабрике. Если я снова и снова использую один и тот же код jQuery во всех контроллерах, он работает. Это не работает, если я поставлю его на заводе и смогу ли завод в контроллерах. Фабрика:
app.factory('prodsFactory', function ($http) {
var prodsFactory = {};
prodsFactory.slider=function(){
$(function(){
...
})
}
})
1-я директива:
app.directive('picturesProject', function () {
return {
restrict: 'E',
templateUrl: 'projects/shop/picturesshop.html',
scope: {},
controller: 'shopCtrl',
link: function(scope){
}
}
})
app.controller('shopCtrl', function($scope,prodsFactory){
return prodsFactory.slider();
});
index.html ...
<script src="projects/shop/picturesshop.directive.js"></script>
...
console.log
. Я думаю, вы обнаружите, что функция jQuery выполняется, но не тогда, когда вы ожидаете. В директивах контроллер создается до вызова функции postLink. - person georgeawg   schedule 31.01.2017