2016-06-16 12 views
0

Ich kann das ng-click-Ereignis nicht auslösen, wenn es sich in einem Element in einem ionischen Modal befindet, das auftaucht. Wenn ich auf ein Element klicke, wird es grau, so als würde es den Klick registrieren, aber ich habe eine console.log-Anweisung als erste Zeile in meiner JoinGroup-Funktion und nichts wird an die Konsole ausgegeben.ng-click funktioniert nicht in Item in Ionic app

Ich habe auch versucht, die ion-list und ion-item Elemente zu verwenden, aber die haben auch nicht funktioniert.

<ion-modal-view> 
    <ion-header-bar class="bar bar-header bar-balanced"> 
    <h1 class="title">Join Court</h1> 
    <button class="button button-clear button-primary" ng-click="modal.hide()">Done</button> 
    </ion-header-bar> 
    <ion-content class="padding"> 
    <div class="list"> 
     <div class="item item-icon-right" ng-repeat="group in groups" ng-click="joinGroup(group)"> 
     <h2>{{group.name}}</h2> 
     <p>{{group.address}}</p> 
     </div> 
    </div> 
    </ion-content> 
</ion-modal-view> 

var joinGroup = function (group) { 

    console.log("Call joinGroup"); 
+0

definieren joinGroup auf $ Bereich definieren müssen. $ scope.joinGroup = function (group) {... – mtamma

Antwort

1

versuchen diese

<ion-modal-view> 
    <ion-header-bar class="bar bar-header bar-balanced"> 
    <h1 class="title">Join Court</h1> 
    <button class="button button-clear button-primary" ng-click="modal.hide()">Done</button> 
    </ion-header-bar> 
    <ion-content class="padding"> 
    <ion-list ng-repeat="group in groups" > 
     <ion-item ng-click="joinGroup(group)"> 
      <h2>{{group.name}}</h2> 
      <p>{{group.address}}</p> 
     </ion-item> 
    </ion-list> 
    </ion-content> 
</ion-modal-view> 

In Ihrem Controller versuchen, mit $ scope zu tun, wenn Funktion wie diese zu schreiben.

$scope.groups = []; 
$scope.joinGroup = function(){ 

    //do your stuff here 
} 
+0

Danke Mohan! Ich hatte $ scope.groups deklariert, aber vergessen, die Funktion mit $ scope zu definieren. Das hat das Problem gelöst. – calilonghorn

1

Ich gehe davon aus Sie die Ansicht mit dem Controller nicht korrekt

verbinden Sie entweder

.controller('myCtl', myCtl); 

function myCtl($scope) { 

    $scope.groups = []; 
    $scope.joinGroup = function(args) {}; 

} 

und Ihre Ansicht

<div ng-controller="myCtl"> 
    <ion-content class="padding"> 
     <ion-list ng-repeat="group in groups" > 
      <ion-item ng-click="joinGroup(group)"> 
       <h2>{{group.name}}</h2> 
       <p>{{group.address}}</p> 
      </ion-item> 
     </ion-list> 
    </ion-content> 
</div> 

oder Sie können diesen Ansatz verwenden, haben was ich bevorzuge

.controller('myCtl', myCtl); 

function myCtl() { 

    var vm = this; 

    vm.groups = []; 
    vm.joinGroup = function(args) {}; 

} 

Ansicht

<div ng-controller="myCtl as vm"> 
    <ion-content class="padding"> 
     <ion-list ng-repeat="group in vm.groups" > 
      <ion-item ng-click="vm.joinGroup(group)"> 
       <h2>{{group.name}}</h2> 
       <p>{{group.address}}</p> 
      </ion-item> 
     </ion-list> 
    </ion-content> 
</div> 
+0

Danke matt93! Ich hatte $ scope.groups deklariert, aber vergessen, die Funktion mit $ scope zu definieren. Das hat das Problem gelöst. – calilonghorn

1

Sie Winkelmodul und Winkelregler und setzen die

app.controller('name',function($scope){ 
    $scope.joinGroup = function(group){ 
console.log("Call joinGroup"); 
} 
}) 
+0

Danke Abdou! Ich hatte $ scope.groups deklariert, aber vergessen, die Funktion mit $ scope zu definieren. Das hat das Problem gelöst. – calilonghorn

+0

froh, dass Sie es lösen – abdoutelb