2016-07-26 4 views
0

ここでは、必要なフィールドをダブルクリックし、値を入力し、Enterキーを押します変更されたときに基本的にデータを更新し、私の角度の関数です:Angularjsでイベントを使用するにはどうすればいいのですか?

$scope.contentEdit = function(data, event) { 
    console.log("event", event); //this function triggers when the user edit student's data from the table and updates new data to local storage. 
    for (var i = 0; i < $scope.students.length; i++) { 
     if ($scope.students[i].studentName == data) { 
      $scope.students[i].studentName = event.target.innerText; 
     } else if ($scope.students[i].Marks == data) { 
      $scope.students[i].Marks = parseInt(event.target.innerText); 
      $scope.students[i].pass = ($scope.students[i].Marks > 65) ? true : false; 
     } 
    } 
    localStorage.setItem('studentsList', JSON.stringify($scope.students)); 
    event.target.contentEditable = event.target.contentEditable == "false" ? "true" : "false"; 
}; 

は私がcontentEdit(student.studentName、$としての私のhtmlから$イベントに合格していますイベント)、それでも動作しません。 フィールドをダブルクリックすると、コンソール上でダブルクリックイベントが正常にログに記録されますが、Enterキーを押すとすぐに、イベントが定義されていないというエラーが発生します。

+0

あなたは** HTML **ポストてもらえますか? – developer033

+0

jsfiddleを提供できますか? –

+0

@AnikIslamAbhiこんにちはAnik、応答していただきありがとうございます。私はそれを修正しました。実際にはこの関数は別の関数によって呼び出されましたが、その関数からイベントを渡すのを忘れてしまいました。 –

答えて

0

ng-dblclickディレクティブを使用していますか?はいの場合は、構文エラーがあると思います。

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.contentEdit = function(data, event) { 
 
     console.log(event); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    <div ng-dblclick="contentEdit(1, $event)">dblclick me to see the console</div> 
 
</div>

関連する問題