Vol*_*lte 6 angularjs angular-http
不幸的是,我们的运行速度为1.2.26(当它被宝石化时会升级到1.2.28).
在此期间,我如何修补(heh)$ http以便可以使用简写patch方法?我对整个服务/工厂/模块的事情都很陌生.我已经做了几个小时的搜索,似乎无法弄明白.
myApp.factory('patchedHTTP', function($http, BasicService) {
// $http['patch'] = function(url, data, config) {
// return $http(angular.extend(config || {}, {
// method: 'patch',
// url: url,
// data: data
// }));
// };
var extended = angular.extend(BasicService, {});
extended.createShortMethodsWithData('patch');
return extended;
});
Run Code Online (Sandbox Code Playgroud)
以上是我得到的最好的......它没有做任何XD
已module.decorator在 1.4 版本中添加到模块 API 中。这就是它在 1.2.x 中不起作用的原因。
请在下面找到一个工作演示或在jsfiddle处找到。
我花了一段时间来实现 patch 方法,因为我错过了返回$http. 但现在它应该可以工作了。
angular.module('patchDemo', [])
.config(function ($provide) {
$provide.decorator('$http', function ($delegate) {
// NOTE: $delegate is the original service
$delegate.patch = function(url, data, config) {
var paramsObj = angular.extend({}, config || {}, {
method: 'PATCH',
url: url,
data: data
});
return $delegate(paramsObj);
}
return $delegate;
});
})
.controller('MainController', MainController);
function MainController($http) {
console.log($http.patch);
//$http({method: 'PATCH', url: 'http://jsonplaceholder.typicode.com/posts/1', data: {title:'foo'}}); //>>>>>working long version of patch
$http.patch('http://jsonplaceholder.typicode.com/posts/1', {
title: 'foo'
}).then(function(response) {
console.log(response);
});
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.26/angular.js"></script>
<div ng-app="patchDemo" ng-controller="MainController"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |