如何从AngularJS控制器正确调用jQuery
我正在尝试将jQueryUI选项卡用于AngularJS 参见示例 问题是调用如何从AngularJS控制器正确调用jQuery,jquery,jquery-ui,angularjs,Jquery,Jquery Ui,Angularjs,我正在尝试将jQueryUI选项卡用于AngularJS 参见示例 问题是调用jQuery(#tabs”).tabs()似乎连接了“tabbify”某些东西所需的“一半” 想法?您根本不应该在控制器中进行DOM操作。相反,您应该使用指令 我一直在开发一套供自己使用的指令: 其原理是将这段简单的代码放到指令文件中: .directive('maketab',function() { return function(scope, elm, attrs) { e
jQuery(#tabs”).tabs()控制器中的code>似乎连接了“tabbify”某些东西所需的“一半”
想法?您根本不应该在控制器中进行DOM操作。相反,您应该使用指令
我一直在开发一套供自己使用的指令:
其原理是将这段简单的代码放到指令文件中:
.directive('maketab',function() {
return function(scope, elm, attrs) {
elm.tabs({
show: function(event, ui) {
scope.$broadcast("tabChanged",ui);
}
});
};
})
然后,在要转换为选项卡的div中:
<div id="mytab" maketab>
<ul>
....
</ul>
<div>...</div>
...
</div>
....
...
...
注意,div及其子结构应该符合jqueryui的要求
要获得更健壮的示例和更多组件,请查看github repo。我也遇到了同样的问题,甚至应用了指令内容(如您所见)嘿@ganaraj,您能以编程方式绑定单击处理程序吗?我正在构建一个应用程序,以图形方式构建表关系(来自json)。假设我右键单击时想在画布上添加一个新表。我该怎么做呢?我对angular很陌生,但对Js或Jquery不熟悉。@berto77你可以。我建议您注意指令中的所有内容,因为这似乎是最符合逻辑的地方。我一直在想一种让angular和canvas一起工作的方法。我不确定它们是否适合彼此,因为它们针对不同的用例……angular适用于web应用程序,canvas适用于游戏(我认为这是不同的场景)@ganaraj我不同意。我目前正在构建一个WebGL浏览器策略游戏。目前我有一个带有jquery ui覆盖的画布。对于在ui组件中使用angular,我感到非常兴奋,但画布仍然是绘制宇宙的核心元素。@mattblang你不同意什么?如果你把一个指令放在画布上,处理指令中的所有东西,这几乎使angular赋予的所有权力无效,不是吗?在画布中操纵像素看起来非常“DOM操纵”,因此它似乎不适合控制器内部。。