无法发布数据角度ng资源

时间:2015-06-04 11:20:19

标签: javascript angularjs

我想使用post方法通过angular ngResource来保存数据。 我已经为这个过程编写了以下代码。但是,当我试图坚持下去 错误即将来临。

JS CODE

angular.module('app').factory("testService", function($resource) {
return{ 
    addCount: $resource('/save/count',{method:'POST',params:{ date: '@date',
                    count: '@count'}}
        )
};
});

//控制器代码

$scope.add = function(){
testService.addCount().get({ date: new     Date(formattedDate).toString("MM/dd/yyyy"),
            count: count},function(response){
                console.log('success')

        });};

当我从我的html单击add()时,我收到以下错误。 TypeError:无法读取属性' get'未定义的

请提供解决此问题的建议

1 个答案:

答案 0 :(得分:0)

RESTful服务应基于每个实体。因此,路由应该只是/Countapi/Count取决于您设置API端点的方式。

然后当您使用$resource时,只需将其指向您的终端并让$resource处理发布等。

$resource遵循HTTP动词背后的含义。因此GET应获取一些数据,POST应保存数据,PUT应更新,DELETE应删除等。

$scope.add = function(){
    var Count = $resource('/count');
    Count.save({
         date: new Date(formattedDate).toString("MM/dd/yyyy"),
         count: count
    }, function() {
        // success
    });
};

这就是我看到自己使用$resource的方式。您始终可以将Count的创建抽象为您创建的服务。

$资源

Link

因此,当您致电$resource('some/route');时,它将返回包含以下方法的对象:

{ 'get':    {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'} };

如您所见,savePOST方法。因此,要调用它,请参考$resource('some/route');,如:

var Count = $resource('some/route');

然后你调用一个方法。

  

对于HTTP GET"类"动作:Resource.action([参数],   [成功],[错误])

     

对于非GET"班级" actions:Resource.action([parameters],postData,   [成功],[错误])

     

对于非GET实例操作:instance。$ action([parameters],   [成功],[错误])

据我了解,类意味着引用Count,实例意味着您的类已被执行并且您已收到该对象。该对象是instance