2017-06-21 94 views
0

这就是我的问题:http://jsfiddle.net/2f6qscrp/311/ 不久:我有一个div可以扩展,它显示一个新的div。这种事件必须全部分开。所以,在这个div的每一部分我都可以打开它(就像手风琴一样)。问题是,如果我点击这个div上的按钮之一(他们必须在那里)div打开。如果可能,我会避免这件事。可能吗?Angularjs中的按钮可扩展div

<div ng-app='home'> 
    <!-- App goes here --> 
    <md-content md-scroll-y flex layout="column" class="_md ng-scope layout-column flex" layout-padding ng-controller="MainCtrl as mainCtrl"> 
     <div layout="column" md-scroll-y> 
      <div layout="row" ng-click="showDetailsFunction();" class="div-outline-none div-cursor-pointer"> 
      <h3 flex class="div-card-panel-title"> 
       Blablablabla 
      </h3> 
      <span flex></span> 
      <ul flex class="div-doc-act div-flex"> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn1');"> 
        btn1 
       </md-button> 
       </li> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn2');"> 
        btn2 
       </md-button> 
       </li> 
       <li> 
       <md-button class="md-icon-button no-margin" 
        data-ng-click="doGreeting('btn3');"> 
        btn3 
       </md-button> 
       </li> 
      </ul> 
      </div> 
      <div data-ng-if="showDetails" class="animate-if"> 
       <div> 
       wevniwernviurevnier 
       </div> 
      </div> 
     </div> 
    </md-content> 
</div> 

角部位

angular.module('home', ['ngAria', 'ngAnimate', 'ngMaterial']); 

angular.module('home').config(function ($mdThemingProvider) { 
    $mdThemingProvider.theme('default') 
     .primaryPalette('pink') 
     .accentPalette('grey'); 
}); 

angular.module('home').controller('MainCtrl', function ($scope, $window) { 
     $scope.showDetails = false; 
    $scope.showDetailsFunction = function() { 
     $scope.showDetails = !$scope.showDetails; 
    }; 
    $scope.greeting = 'Hello, World!'; 
    $scope.doGreeting = function(greeting) { 
     $window.alert($scope.greeting + " " + greeting); 
    }; 
}); 

回答

0

你可以尝试使用event.stopPropagation();方法,以避免对按钮点击DIV开幕。

$scope.(your div name) = function($event) { 
    $event.stopPropagation(); 
    // Some code to find and display the next image 
} 
+0

如果我使用event.stopPropagation();当我点击按钮时,我无法使用按钮中的功能 –

+0

@ End.Game哦,是的!你仍然可以。看看这个小提琴http://jsfiddle.net/ahzhhuLw/。 – 31piy

+0

我不确定。在我真正的代码中,当我点击其中一个按钮时,会启动一个http调用,如果我放入代码,它不会触发该调用。此外,该调用打开一个模式,并与event.stopPropagation();模态不出现 –