$ resource delete方法无法正常工作

时间:2016-04-25 08:03:37

标签: javascript angularjs json

我正在学习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>

&#34; $ scope.deleteRecord&#34;是单击“删除信息”按钮时,应删除json文件中id = 1的记录的功能。错误说:&#34;删除http://localhost:3000/contactInfo 404(未找到):3000 / contactInfo:1&#34;,而&#34; arecord&#34;在日志中显示为对象&#34; m {email:&#34; 333 @ 333&#34;,密码:321,方法:&#34; Internet&#34;,id:1,$ promise:undefined ......}&#34;,应该没问题。

1 个答案:

答案 0 :(得分:1)

<强> $ HTTP

  

$ http.get('/ someUrl',config).then(successCallback,errorCallback);

     

$ http.post('/ someUrl',data,config).then(successCallback,errorCallback);

     

$ http 内置于Angular中,因此不需要在外部依赖项中加载额外的开销。 $ http很快就好了   检索实际上不需要任何特定的服务器端数据   结构或复杂的行为。它可能最好直接注射   为了简单起见,进入你的控制器。

<强> $资源

  

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

     

HTTP GET“class”操作:Resource.action([parameters],[success],[error])

     

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

     

$ resouce 适用于比$ http稍微复杂的情况。当你有漂亮的结构化数据时,这很好,但是你   计划完成大部分的运算,关系和其他操作   在提供API响应之前在服务器端。 $资源   将数据导入JavaScript后,您不会做太多事情   应用程序,所以你应该将它交付给最终状态的应用程序并制作   当你需要从一个操作或查看它时,更多的REST调用   不同的角度。

您也可以使用:restangular https://github.com/mgonto/restangular

  

Restangular 是客户端复杂操作的完美选择。它可以让您轻松附加自定义行为和交互   您的数据与其他模型范例的方式大致相同   在过去使用过。

Angularjs指南:https://docs.angularjs.org/api/ng/service/ $ http#delete

尝试使用删除方法:

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

我希望它有所帮助。