[AngularJS] $resource

$resource Refactor

Let's convert our custom Note factory to use Angular resource. Removeall()find(), and create() methods from our Note service and replace them with the $resource equivalent.

复制代码
angular.module('NoteWrangler')
.factory('Note', ['$http', function NoteFactory($http) {
  
  return {
    all: function() {
      return $http({method: 'GET', url: "/notes"});
    },
    find: function(id) {
      return $http({method:'GET', url: '/notes/' + id});
    },
    create: function(noteObj) {
      return $http({method: 'POST', url: '/notes/', data: noteObj});
    }
  };
}]);
复制代码

Include angular-resource.js in index.html so that we can use it in our app. It is located in the same directory as our angular.js file.

<script src="./js/vendor/angular-resource.js"></script>

 

Replace the existing object that is returned from the Note factory with an Angular resource that uses '/notes' as the data source.

angular.module('NoteWrangler')
.factory('Note', ['$resource', function NoteFactory($resource) {
  return $resource("/notes");
}]);

 

Using a $resource-ful Note Service 

Now that our Note factory is using ngResource, we'll need to update how it's used in NotesIndexController.

复制代码
angular.module('NoteWrangler')
.controller('NotesIndexController', ['$scope', 'Note', 'Tweetable', function($scope, Note, Tweetable) {
  Note.all().success(function(data) {
    $scope.notes = data;
  });
  
  $scope.tweetThatNote = function(noteToTweet) {
    Tweetable(noteToTweet).success(function(status) {
      console.log(status);
    });
  };
}]);
复制代码

 

Replace the existing call to Note.all() with the correct call to the NoteAngular resource.

//before
  Note.all().success(function(data) {
    $scope.notes = data;
  });

//now
$scope.notes = Note.query();

 

 A Custom Method for Our Note $resource

Wouldn't it be great to have a custom method on our Note resource to mark it as tweeted?

Add a tweetIt method to the Note resource. Remember, this updates an existing note, so use the correct HTTP method.

angular.module('NoteWrangler')
.factory('Note',['$resource', function NoteFactory($resource) {
  return $resource('/notes', {}, {
    tweetIt : {
      method: 'PUT'
    }
  });
}]);

 

posted @   Zhentiw  阅读(462)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示