angularjs - How to call an angular resource from a service -
i using angular 1.1.5 (wait angular-ui-router comptabible 1.2.0). defined resource , service:
myapp.factory( 'monitoring', function($resource) { return $resource('/webapp/network/v1/cronjobs/:id/:action', { id: '@id' }, { status: { method: 'patch', headers:{'content-type': 'application/json'}, params:{action: 'status'}} } ); }); myapp.factory('monitoringcrudcontrollerservice', ['monitoring', '$state', function(monitoring, $state) { return { query: function() { var m = new monitoring(); var promise = m.$query().then(function(response) { console.log(response); return response.data; }); return promise; }, query1: function() { var m = new monitoring(); return m.$query(); }, // angular 1.2.0 rc query2: function() { var m = new monitoring(); return m.$query().$promise; } } }]); in controller tried query , query1 both of them returned cannot call method 'then' of undefined. query2 should 1.2.0 way call resource.
edit: updated controller
function($scope, $location, monitoringcrudcontrollerservice) { $scope.refresh = function() { monitoringcrudcontrollerservice.query().then(function(value) { $scope.mydata = value; }); }; } console.log(monitoringcrudcontrollerservice) returns object {create: function, get: function, query1: function, query2: function, update: function…}
edit2:
i tried suggested
query3: function() { return monitoring.query(); }, query4: function() { var m = new monitoring(); var promise = m.query().then(function(response) { console.log(response); return response.data; }); return promise; }, query3 returns promise on can call $then , not then , works.
query4 returns error object #<resource> has no method 'query'. reason used new passing arguments (this how it's documented): see angular resource rest has no method '$save'
inject service in controller like;
yourapp.controller('controllername',function(monitoringcrudcontrollerservice){ $scope.refresh = function() { monitoringcrudcontrollerservice.query().then(function(value) { $scope.mydata = value; }); }; }); hope helps.
Comments
Post a Comment