2017-10-31 8 views
0

私は彼らがこれに似た質問をたくさんしていることを知っていますが、私は本当に具体的になります。私のjqueryのスクリプトは一度だけ動作し、その後、私は、このエラーにjquery fadeOutは、角度呼び出しを行うときに一度しか機能しませんか?

angular.min.js:108 DELETE http://localhost:8080/todo/20 500 (Internal Server Error)

を取得し、まだそれはリフレッシュに私のポストを削除します。あなたはjQueryのを使用しているのでここでイム

その私のjqueryのスクリプトを推測main.js

var app = angular.module('john',[]); 

app.controller('myCtrl', function($scope, $http, $location){ 

$scope.deleteTask = function(id){ 

    $http.delete('/todo/' + id).then(function(data, response, status, headers, config){ 
      $http.delete('/todo/' + id); 
      $scope.activePath = $location.path('/'); 
      console.log("it deleted"); 
     }, function(rejection){ 
      console.log("some error"); 
     }); 
    } 


$scope.addTask = function(taskdata){ 


    $http.post('/todo', taskdata).then(function(response){ 
     // taskdata.task = ''; 
     console.log("it works"); 
    }, function(rejection){ 
     console.log("it didn't work"); 
    }); 


} 


}); 
    $('#disappear').click(function(e){ 
     e.preventDefault(); 
     $('#gone').fadeOut(1000, function(){ 
      $(this).remove(); 
     }); 



    }); 

はそれのhtmlコード

<div id="gone" class="myl" ng-controller="myCtrl"> 
    <li><h4>{{ task.task}}</h4></li> 
    <small style="font-style:italic">{{task.created_at |date("m/d/Y")}}</small></br> 

<button id="disappear" class="btn btn-sm btn-danger" ng-click="deleteTask({{task.id}})">Delete</button> 
    </div> 

答えて

0

あるので、だから、角度のスクリプトは、働いていますタグIDセレクタ#disappear #gone、JQuery Eventsは一度だけ接続されます。つまり、一度しか動作しません。

$のhttp.deleteの呼び出しが成功したときにフェードアウトを実行します。

<div id="task{{task.id}}" class="myl" ng-controller="myCtrl">... 
+0

私がやった:これが機能するためには、私たちのHTMLに我々は、タスクのdivに一意のIDを割り当てる必要が

$http.delete('/todo/' + id).then(function(data, response, status, headers, config){ $('task' + id).fadeOut(1000, function(){ $(this).remove(); }); 

あなたが提案したものの、フェードアウトはしませんが、私は削除します – JohnC

+0

ここには、 'angular.js:12587 DELETE http:// localhost:8080/todos 405(Method Not Allowed) 'というエラーがありますが、しかし、フェードアウトしません。 – JohnC

+0

サーバが200を返していないので、フェードアウトしていません。サーバーは、ミドルウェアが要求を処理する可能性があります。 – Scriptonomy

関連する問題