在Angular中使用jQuery:有什么不好的吗?

时间:2014-08-28 21:39:43

标签: jquery angularjs twitter-bootstrap accordion

我在Angular网络应用中使用Bootstrap手风琴,并看到一篇文章解决了崩溃/展开图标切换的错误(请查看此post)。

帖子提到了一个涉及简单jQuery的修复。这是代码:

$('.accordion-toggle').click(function() {
    if($(this).hasClass('collapsed')) {
        $('.accordion-toggle').not(this).addClass('collapsed');
    }
});

在我的Angular网络应用程序中使用上述jQuery修复程序有什么不可取的吗?如果是这样,使用Angular的这个bug的推荐修复是什么?

1 个答案:

答案 0 :(得分:1)

让我们按部分分析:

1°这个

$('.accordion-toggle').click(function() {
在你的dom中,

实际上应该是这样的:

<div ng-click="toggleAccordion()">Toggle accordion!</div>
<div ng-class="{collapsed: isToggled}"><!-- data --></div>

2°这个

$('.accordion-toggle').not(this).addClass('collapsed');

在你的控制器中应该是这样的:

$scope.toggleAccordion = function(){
    $scope.isToggled = !$scope.isToggled;
}

这样做,解决方案更具说明性而非命令性。干杯!

PD:另一种方法是完全dom,但我不喜欢它。

<div ng-click="isToggled = !isToggled">Toggle accordion!</div>
<div ng-class="{collapsed: isToggled}"><!-- data --></div>