2016-04-25 44 views
1

我正在学习Angluarjs的$资源。我在HTML上设置了一个按钮,用于从json文件中删除记录,并希望从testForm.json文件中删除一条记录。不幸的是,我没有这样做,也无法解决问题。

的代码在这里:在控制器代码my Angularjs code 该删除功能被示出如下

$scope.deleteRecord = function() { 
      var id = 1; 
      var arecord = new singleResource(); 
      arecord.$get({userId:id},function() { 
       $log.info(arecord); 
       arecord.$delete(); 
      }); 

的删除功能的HTML部分如下所示:

<div class="form-group"> 
     <div class="col-sm-6 col-sm-push-2"> 
      <button type="button" class="btn btn-primary" ng-click="deleteRecord()">Delete information</button> 
     </div> 
     </div> 

“$范围。 deleteRecord“是单击”删除信息“按钮时,删除json文件中id = 1的记录的功能。错误说:“DELETE http://localhost:3000/contactInfo 404(Not Found):3000/contactInfo:1”,而“arecord”在日志“m {email:”333 @ 333“,password:321,method: “Internet”,id:1,$ promise:undefined ...}“,这应该没问题。

+0

我想这是错误的动词 – thegio

回答

1

$ HTTP

$ http.get( '/ someUrl',配置)。然后(successCallback,errorCallback); ('/ someUrl',data,config).then(successCallback,errorCallback);}。

$ http内置于Angular中,因此不需要在外部依赖中加载额外的开销。 $ http很适合快速检索服务器端数据,并不需要任何特定的 结构或复杂的行为。为了简单起见,最好直接将 注入到控制器中。

$资源

类对象或实例对象上的操作方法可以调用>下列参数:

HTTP GET “下课” 的行动:Resource.action( [参数],[成功],[错误])

非GET“类”操作:Resource.action([parameters],postData,[success],[error])

$资源适用于稍微比$ http复杂的情况。当您拥有非常结构化的数据时,这很好,但您计划在交付API响应之前,在服务器端执行大部分计算,关系和其他操作 。 $资源 不会让你做太多,一旦你的数据到你的JavaScript 的应用程序,所以你应该把它交付给应用程序在其最后的状态,让当你需要操纵或看它从一个 更REST调用 不同的角度。

另外,您可以使用:restangular https://github.com/mgonto/restangular

Restangular是在客户端上复杂的操作,完美的选择。它使您可以轻松附加自定义行为,并与您的数据进行交互,其方式与您过去使用的其他模型范例非常相似。

Angularjs指南:https://docs.angularjs.org/api/ng/service/ $ HTTP#删除

尝试删除方法:

$scope.deleteRecord = function() { 
      var id = 1; 
      var arecord = new singleResource(); 
      arecord.$delete({userId:id},function() { 
       $log.info(arecord); 
       //arecord.$delete(); 
      }); 

$http({ 
    method: 'DELETE', 
    url: '/someUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    }); 

我希望它能帮助。

+0

非常感谢您的回答。另一个令我困惑的问题是,何时使用$ http服务以及何时使用$ resource服务与服务器端进行通信?或哪一个更好? $ resource服务在使用时是否需要successCallback和errorCallback函数? –

+0

我做了一些解释 – thegio