2016-07-06 2 views
0

Ich habe NG-Klick für beide Eltern Div und Child Div, so dass die Click-Ereignis von Kind auslösen Ich gebe $ event.stopPropogation() und das click lädt die Datei in einen iframe.

aber wenn ich $ event.stopPropogation() an das Kind weitergeben div der Inhalt nicht geladen ist und wenn ich es entfernen, dessen Laden bekommen

ich dnt verstehen, wo ich falsch mache und es keine Fehler bei alle hier

ist die html hier

<div ng-class="{'col-xs-6': myVar=='something'}"> 
<div class="panel panel-default panel-height" ng-repeat="candidateInfo in aCandidateDetails track by $index" ng-click="fnInterviewView(candidateInfo.name)"> 
    <div class="panel-heading header-background"> 
     <div stop-watch time="xyz" name="candidateInfo.name" time-of-interview="candidateInfo.doi" class="stop-watch"></div> 
     <div class="row"> 
      <div class="col-xs-2"><a style="cursor:pointer" class="pull-right">{{candidateInfo.name}}</a></div> 
      <div class="col-xs-offset-9"><a style="cursor:pointer" ng-click="fnVar(candidateInfo.name, candidateInfo.filepath,$index);$event.stopPropogation()" data-toggle="collapse" data-target="{{'#'+'collapse'+'_' + name}}">{{candidateInfo.name}} resume</a></div> 
     </div> 
    </div> 
</div></div> 

wird der Controller-Code unter

angular.module('hrPortalApp') 
.controller('candidateInterviewCtrl', function($scope, $state, $sce, getCandidateInterviewListService) { 
    getCandidateInterviewListService.fnGetCandidateDetails("xyz").then(function(response) { 
     $scope.aCandidateDetails = response; 
     console.log(response); 
     $scope.toggle = "accor" 
    }); 
    $scope.file = $sce.trustAsResourceUrl('http://localhost:4000/api/uploads/574ed76718153dac202679b9_resume.pdf'); 

    $scope.fnVar = function(name, filepath, index, event) { 
     $scope.file = $sce.trustAsResourceUrl('http://localhost:4000/' + filepath); 
     $scope.checkVar = !$scope.checkVar; 
     if ($scope.checkVar) { 
      $scope.myVar = "something"; 
     } else { 
      $scope.myVar = false; 
     } 
    }; 
    $scope.fnInterviewView = function(name) { 
     $state.go('main.Topics', { 
      "candidateDetails": $scope.aCandidateDetails, 
      "name": name 
     }) 
    }; 

}); 

Jede Hilfe wäre

Antwort

0

Geben Sie die $ Ereignis an die $ scope.fnVar Funktion und machen die Stopp Ausbreitung geschätzt werden, nachdem die Arbeit wie unten und nicht in den HTML-Code gemacht wird ....

$scope.fnVar = function(name, filepath, index, event) { 
$scope.file = $sce.trustAsResourceUrl('http://localhost:4000/' + filepath); 
$scope.checkVar = !$scope.checkVar; 
if ($scope.checkVar) { 
    $scope.myVar = "something"; 
} else { 
    $scope.myVar = false; 
} 
event.stopPropagation(); 
}; 
+0

ja Ich habe das gemacht aber immer noch nicht in der Lage, die Datei zu laden –

+0

Was passiert, wenn Sie event.stopPropagation entfernen? Wird die Datei geladen? Ich weiß, dass es das Click-Ereignis auf dem Eltern-Div auslösen wird, aber immer noch. Versuchen Sie auch, ein timeout für die event.stopPropagation hinzuzufügen, um zu sehen, ob das funktioniert. Wenn dies der Fall ist, müssen Sie die Weitergabe stoppen, nachdem die Datei vollständig geladen wurde. – Srijith

+0

Wenn ich Stop-Propagation entferne, wird die Datei geladen, aber es wird ein Eltern-Klick-Ereignis ausgelöst. –