2013-03-27 71 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