У меня есть этот лайтбокс, который появляется время от времени. Есть три способа закрыть его. Нажмите кнопку «Закрыть», щелкнув надпись, находящуюся за ее пределами, и другим способом. Для близкого действия я решил сделать фабрику, которая выглядит следующим образом:Установкой на заводе AngularJS
app.factory('close',function(){
return {
close: function(){
$('.mySelector').fadeOut();
}
}
});
Один из моих HTML-элементов, которые я хочу, чтобы закрыть лайтбокс будет что-то вроде этого:
<a href="" ng-click="close">close lightbox</a>
вопрос я столкнулся с этим: должен ли i ввести завод в директиве (видя, как он манипулирует DOM) или в контроллере? - Контроллер существует в любом случае, так как мне это нужно для других вещей. Преимущество первого заключается в том, что у моей разметки будет только контроллер, прикрепленный к верхнему элементу лайтбокса, и с ним можно сделать. Директива, с другой стороны, должна быть привязана к каждому элементу индивидуально + есть сам код директивы (мало что может быть).
Это приводит к:
added code for directive +
<top-element-of-lightbox ng-controller="myController"> <!-- controller does NOT have factory injected -->
<a href="" ng-click="close" **my-directive**>close lightbox1</a> <!--directive attached to element -->
<a href="" ng-click="close" **my-directive**>close lightbox2</a> <!--directive attached to element -->
...
</top-element-of-lightbox>
Versus:
0(zero) directive code +
<top-element-of-lightbox ng-controller="myController"> <!-- controller HAS factory injected -->
<a href="" ng-click="close">close lightbox1</a> <!-- no directive attachment -->
<a href="" ng-click="close">close lightbox2</a> <!-- no directive attachment -->
...
</top-element-of-lightbox>
Наконец, я новичок в Угловое, так что я был бы признателен, если вы обоснуйте свой ответ, а также, пожалуйста, скажите мне, если я буду о все это правильно, и если есть области, где я мог бы улучшить, или другой подход был бы лучше.
http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background?rq=1 – m59
@ m59 Немного полезно - если только чтобы укрепить мое мнение о том, что «угловой путь» не всегда лучший способ, даже в угловом приложении. Спасибо. –
@RaduAndrei Я не совсем уверен, что вы имеете в виду. – SomeKittens