如何从AngularJS控制器正确调用jQuery

时间:2012-05-31 08:01:07

标签: jquery jquery-ui angularjs

我正在尝试使用AngularJS的jQuery-UI标签。

请参阅示例here

问题是在控制器中调用jQuery("#tabs").tabs();似乎与“tabbify”所需内容的“一半”联系在一起。

想法?

1 个答案:

答案 0 :(得分:14)

你根本不应该在控制器中进行DOM操作。相反,你应该使用指令。

我一直在开发一套供我自己使用的指令:https://github.com/ganarajpr/Angular-UI-Components

理念是将这些简单的代码放在指令文件中:

.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及其子结构应符合JQuery UI要求的内容。

有关更强大的示例和更多组件,请查看github repo。