是否应该将angularjs $资源包装在工厂中?为什么不服务?

时间:2016-05-04 16:21:01

标签: angularjs angularjs-service angular-resource angular-services angularjs-factory

$resource应该使用.factory的原因?为什么.service是错误的方式?

e.g。

app.factory('Notes', ['$resource', function($resource) {
return $resource('/notes/:id', null,
    {
        'update': { method:'PUT' }
    });
}]);

为什么这是错的?

app.service('Notes', ['$resource', function($resource) {
return $resource('/notes/:id', null,
    {
        'update': { method:'PUT' }
    });
}]);

1 个答案:

答案 0 :(得分:1)

两者都是单身,但services使用new关键字进行实例化。 如果您要使用$resource,那么您将无法访问service的静态类方法,具体取决于您的应用程序可能会更好。

换句话说,你无法使用:

Notes.query({ ... });
Notes.create({ ... });

和其他类函数变体。只有实例方法,如:

note.$get()
note.$save()
note.$update()