2016-05-13 17 views
0

ボタンをクリックすると表示されるメニューがあります。まあ、そのメニューには、スパンのペアがあります:icon-title。かなり簡単ですね。Ng-clickがdivで動作しない

どういうわけか、これらのスパンは、私がそれらをクリックしたときに私のコントローラメソッドを呼び出すことはありません。私はdivでこれらのペアをラップし、それらのng-clickを設定しようとしましたが、どちらもうまくいきません。

これは私のコンテキストメニューです:

<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> 

現在、私は唯一の "removeNote()" 機能に焦点を当てています。角度とノードの両方のメソッドをテストする準備ができていますが、クリックを実行できないので使用できません。

これが働いて、コントローラ内部で、関数である。

$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); 
      }); 
    } 

NG-クリックは、この関数を呼び出していないのはなぜ?何か不足していますか?

編集:

コントローラー宣言:

アッパーコントローラ:

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

インナー:

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

用途:

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

実際、このメソッドは別のコントローラ(はい、2つのネストされたコントローラ)の中にありますが、残りの継承された関数は正常に動作します。唯一のものはこれだけです。とにかく、私は私のdiv /スパンのペアにマウスを置くので、私は通常のポインタを見て、それは全く適用されていない(私はHTMLコンソールthoでそれを見ることができます)。

+0

私の最初の推測では、$ http.postコールバックで "success"が間違っているため、エラーが発生していると思います。コンソールログを確認してください。 – Rob

+0

ちょうど修正され、そのタイプミスが編集されましたが、ありがとう!メソッドが呼び出されることはないので、これは問題ではありません。 – Zerok

+1

コントローラの宣言はどのように見えますか、コントローラはHTMLのどこに設定されていますか?ありがとう! – aaronofleonard

答えて

0

はあなたのNG-コントローララインを変更してみてください。

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

その後、あなたのメソッドの呼び出し:

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

それが今で動作します、にconsole.logはあなたに何かを与えるのでしょうか?

関連する問題