2016-05-13 4 views
0

Ich habe ein Menü, das erscheint, wenn ich auf eine Schaltfläche klicke. Nun, in dieses Menü habe ich Paare von Spannen: Icon-Titel. Ziemlich einfach, schätze ich.Ng-Klick funktioniert nicht in div

Nun, irgendwie diese Bereiche meine Controller-Methode nicht aufrufen, wenn ich auf sie klicke. Ich habe versucht, diese Paare in divs zu verpacken und den ng-Klick darauf zu setzen, aber das funktioniert auch nicht.

Das ist mein Kontextmenü:

<div class="opciones" ng-hide="optionsHide"> 
     <div> 
     <span class="glyphicon glyphicon-lock icono"></span> <span class="optionsLabel">Encrypt</span> 
     </div><br> 
     <div ng-click="removeNote()"> 
     <span class="glyphicon glyphicon-trash icono"></span><span class="optionsLabel">&nbspDelete</span><br> 
     </div><br> 
     <div> 
     <span class="glyphicon glyphicon-wrench icono"></span><span class="optionsLabel">&nbspOptions</span> 
     </div> 
    </div> 

Derzeit bin ich konzentrierte sich nur auf die "RemoveNote()" Funktion. Ich habe sowohl eckige als auch Knoten-Methoden zum Testen bereit, aber ich kann sie einfach nicht verwenden, da ich den Klick nicht ausführen kann.

Dies ist die Funktion, innerhalb des Arbeits Controller:

$scope.removeNote = function(){ 
     $http.post('/removeNote', $scope.mainNote).success(function(data){ 
     console.log("Note removed"); 
     console.log(data); 
     loadNotes(); 
     }).error(function(err){ 
      console.log("ERROR ON DELETE"); 
      console.log(err); 
      }); 
    } 

Warum ng-Klick diese Funktion nicht aufrufen? Fehle ich etwas?

edit:

Steuererklärung:

Ober Controller:

app.controller('mainCtrl', ['$scope', '$http', '$filter', 'focus', function($scope, $http, $filter, focus){ 

Inner:

app.controller('contentCtrl', ['$scope', '$q', '$timeout', function($scope, $q, $timeout) { 

Verwendung:

<body ng-controller="mainCtrl" ng-cloak> 
    // Things 
    <content ng-controller="contentCtrl"> 
    // My contextual menu as shown above 

Eigentlich ist diese Methode in einem anderen Controller (ja, zwei verschachtelte Controller), aber der Rest der vererbten Funktionen funktionieren ordnungsgemäß; der einzige, der nicht funktioniert, ist dieser. Wie auch immer, ich sehe immer den normalen Zeiger, wenn ich die Maus auf mein div/Paar von Spannen setze, so dass es überhaupt nicht angewendet wird (ich kann es in der HTML-Konsole sehen).

+0

Meine erste Vermutung ist, dass Sie einen Fehler erhalten, weil "Erfolg" in Ihrem $ http.post Callback falsch geschrieben ist. Überprüfen Sie Ihr Konsolenprotokoll. – Rob

+0

Nur fix und bearbeitet, dass Tippfehler, aber danke! Das ist sowieso nicht das Problem, da die Methode nie aufgerufen wird. – Zerok

+1

Wie sieht die Deklaration Ihres Controllers aus und wo ist der Controller in Ihrem HTML-Code festgelegt? Vielen Dank! – aaronofleonard

Antwort

0

Versuchen Sie, Ihre ng-Controller Linie zu ändern:

<body ng-controller="MainCtrl as vm"> 

dann Ihre Methodenaufruf:

<div ng-click="vm.removeNote()"> 

es jetzt nicht funktioniert, hat die console.log Ihnen etwas?

Verwandte Themen