我有这个灯箱,从时间弹出时间。有3种方法可以关闭它。关闭按钮,点击外面的叠加层以及其他方式。对于关闭动作,我决定做一个工厂,看起来像这样:AngularJS工厂布局
app.factory('close',function(){
return {
close: function(){
$('.mySelector').fadeOut();
}
}
});
一个,我想有密切的灯箱会是这样的我的HTML元素:
<a href="" ng-click="close">close lightbox</a>
问题我面对的是:我应该的指令注入工厂(看到它操纵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>
对战:
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 2014-09-20 20:49:32
@ m59有点用处 - 只要以巩固我的观点,即“角度方式”并不总是最好的方式,即使在角度应用程序中也是如此。谢谢。 – 2014-09-20 23:25:27
@RaduAndrei我不太清楚你的意思。 – SomeKittens 2014-09-21 04:37:28