2014-04-02 54 views
1

我有一個表格,每行有一個複選框。該錶行聽NG-點擊複選框以NG-變化:由嵌套複選框觸發的角tr-ngClick事件

<tr ng-repeat="box in boxList | box_expect:searchText" ng-click="openBox(box._id)"> 
    <td>...</td> 
    <td>...</td> 
    <td>...</td> 
    <td><input type="checkbox" ng-change="checkBoxChanged(id)" ...></td> 
</tr> 

每次我點擊複選框,我觸發錶行的NG-Click事件。

我將ng-click更改爲ng-doubleClick,但雙擊移動設備並不舒服。

我該如何解決這個問題?

+0

考慮'角touch'? –

+0

我只想保留我的單擊事件。我只想知道,我怎樣才能防止複選框更改事件觸發行單擊事件。 – marcel

回答

3

您可以創建一個指令來停止點選事件在您的複選框(DEMO)上的傳播。

app.directive('noclick', [function() { 
    return { 
     restrict: 'A', 
     link: function link(scope, element, attrs) { 
     element.bind('click', function(e) { 
      e.stopPropagation(); 
     }); 
     } 
    } 
}]); 

並將其添加到您的複選框:

<input type="checkbox" ng-change="checkBoxChanged(id)" ng-model="loremIpsum" noclick> 
+0

這看起來不錯,我會實現這一點,並檢查它是否適用於我:) – marcel

+0

是的就是這樣。我永遠不會想到這個指令。 Tyvm;) – marcel