2013-03-27 138 views
0

我想使用$(selector).trigger('click')触发该元素上的ng-click事件。AngularJS - 使用指令允许jQuery点击事件触发ng单击

我想我想用一个指令来做到这一点,但我不知道该怎么做。这是我在想什么:

.directive('jClick', function() { 
    return { 
     restrict : 'A', 
     scope: { 
      'ngClick' : '&' 
     }, 
     link: function($scope, element) { 
      return element.bind('click', function(){ 
       $scope.ngClick({order : $scope.order}); 
      }); 
     } 
    }; 
}) 

不仅它不工作,它完全打破了我的应用程序。 场景(如果它帮助)是这样的:

我有扩大扩张zippies的列表时,在我的ng-click调用的函数(ng-click="expand(order)")。

我有,检查是否有在我当前的URL一样结束的哈希函数:(我保持第二哈希单独从$routeParams,因为他们的目的不同)

example.com#/my/route/params#83947 

我使用函数来检查第二个哈希是否存在,并向下滚动页面到相应的列表项。这一切工作正常,但我希望它扩大该列表项目,因此我的愿望触发ng-click

+0

如果你发布这样做的原因,也许有另一种方法。不知道为什么触发ng-click是必要的。 – Ketan 2013-03-27 17:37:59

+0

@Ketan我已经添加了我对我的问题做这件事的原因。 – 2013-03-27 17:51:12

回答

2

那么你想基于某种条件自动打开zippy?条件本身并不重要。你可以做的是将可见性(展开/折叠)绑定到布尔值并在控制器上设置变量。在Zippy指令中,ng-click也会设置相同的变量。所以你有两种方法来打开和关闭zippy,一次通过点击Zippy和一个通过从外面设置标志。

ng-click是一个内置的指令,而不是一个属性本身或您可以调用的函数。我不会依靠手动触发ng-click。

+0

这就是我最终做的,它的工作很棒!谢谢你的帮助。 – 2013-03-27 19:53:23