2016-10-19 31 views
0

我想刪除Angular JS中的元素。當用戶單擊動作按鈕時,卡片視圖會假定被刪除,但不會在HTML視圖中刪除,而會在後端nodejs中刪除。& DB數據已被刪除。當我刷新元素已被刪除所有我想要的是當我點擊按鈕從HTML卡視圖必須被刪除,也在數據庫中?請幫我解決這個問題?如何刪除角js中的Json對象的數據?

HTML查看

<md-card ng-repeat="user in data" class="color" ng-style="user.changeColor"> 
    <md-card-title> 
     <md-card-title-text style=""> 
      <span class="md-headline">Name:{{user.name}}</span> 
      <span class="md-headline">Mobile:{{user.mobile_no}}</span> 
     </md-card-title-text> 
    </md-card-title> 

    <md-input-container> 
     <label>Meter ID</label> 
     <input ng-model="meter" required md-maxlength="10" type="text" > 
    </md-input-container> 

    <md-button class="color1" ng-click="meterID(user,meter)" > 
      Action 
    </md-button> 
</md-card> 

角JS代碼

.controller('userCtrl',function($scope,$rootScope,$http){ 
    $scope.test="Hello Raam" 
    $scope.meter; 

    $http.get('http://localhost:8888/json').success(function(response){ 
     $scope.data=response; 
     console.log($scope.data) 
    }) 

    $scope.meterID=function(user,meter,x){ 
     console.log("User",user);  
     console.log("Meter",meter) 

     user.changeColor={ 
      "background-color":"green",   
     } 
     console.log(user.name); 

     $scope.userMeter={   
      name:user.name, 
      mobile:user.mobile_no, 
      appartment:user.appartment, 
      street:user.street, 
      city:user.city, 
      pincode:user.pincode, 
      meterID:meter 
     } 

     console.log("UserMeter",$scope.userMeter); 


      $http.post('http://localhost:8888/meterID',$scope.userMeter).success(function(response){ 
       console.log("value has been successfully updated"); 
       $scope.data1=response; 
       console.log("$scope.data1",$scope.data1) 
      }) 

      $http({ 
       method: 'DELETE', 
       url: 'http://localhost:8888/deleteRegisterUser', 
       data: user, 
       headers: {'Content-Type': 'application/json;charset=utf-8'} 
      }).success(function (data, statusText){ 
        console.log("value has been successfully Deleted",data); 

       }) 
      } 
}) 

的NodeJS:

app.delete('/deleteRegisterUser', function(req,res){ 
      var mob=req.body.mobile_no; 
       console.log("deleteRegisterUser : ",mob) 
       // res.send(data) 
      con.query("DELETE from water_register WHERE mobile_no = ?",mob,function (err,rows){ 
       if(err) throw err; 
       console.log("Value has been deleted") 
       // res.send(rows); 
       res.redirect('/dashboard'); 
      }) 
    }) 
+0

我沒有看到你在哪裏試圖刪除UI中綁定模型的值... –

回答

0

你是不是刪除從$ scope.data元素,也就是從源陣列你的重複。

我看你不使用你的NG-重複過濾器,所以你有兩個選擇:

  1. 創建接收索引作爲參數,並刪除數組中對應的項目一個功能:

    $ scope.remove = function(index){ $ scope.data.splice(index,1); }

以及您納克點擊呼叫功能:

<md-button class="color1" ng-click="meterID(user,meter); remove($index)" > 
  • 簡單地傳遞索引作爲參數來你meterID功能和從刪除的項$ scope.data there
  • 請小心,只有在不使用過濾器的情況下,傳遞索引纔有效,如果您必須將該對象傳遞給remove函數而不是索引,並使用的indexOf:

    $scope.remove = function (item) { 
        $scope.data.splice($scope.data.indexOf(item), 1); 
    } 
    

    而調用這個函數傳遞項作爲參數:

    <md-button class="color1" ng-click="meterID(user,meter); remove(user)" > 
    
    0

    不知道我理解你的函數$scope.meterID

    要調用這兩個更新和相同的函數中刪除。不管怎麼說,以後您從$scope.data刪除的項目, 再拍「HTTP GET」呼叫從後端

    //after $http.post (method: DELETE) .... 
    
    $http.get('http://localhost:8888/json').success(function(response){ 
        $scope.data=response; 
        console.log($scope.data) 
    }) 
    

    而且取得更新記錄名單,在你http.post方法,你seeting的價值$ scope.data1。什麼是data1,你在哪裏使用它?我相信它應該是

    $scope.data=response; 
    console.log("$scope.data ",$scope.data)enter code here