我在post.serv.js中有这个代码,在我的控制器中我想执行函数delete。
"use strict";
app.factory('JnttPost', function ($resource) {
var PostResource = $resource('/api/post/:_id', {
_id: "@id"
}, {
update: {
method: 'PUT',
isArray: false
}
}, {
delete: {
method: 'DELETE',
isArray: false
}
});
return PostResource;
});
我已经知道如何获取和更新帖子,例如在我的createpost.serv.js中
"use stric";
app.factory('JnttCreatePost', function ($http, $q, JnttPost) {
return {
createPost: function (newPostData) {
var newPost = new JnttPost(newPostData);
var dfd = $q.defer();
newPost.$save().then(function () {
dfd.resolve();
}, function (response) {
dfd.reject(response.data.reason);
});
return dfd.promise;
}
};
});
和我的newpost.ctrl.js
"use strict";
app.controller('CtrlNewPost',
function ($scope, $location, JnttIdentity, JnttNotifier, JnttCreatePost) {
var email = ...;
$scope.newPost = function () {
var newPostData = {...};
JnttCreatePost.createPost(newPostData).then(function () {
JnttNotifier.notify('success', 'The post has been created');
$location.path('/');
}, function (reason) {
JnttNotifier.notify('error', reason);
});
};
});
我无法实现删除请求,我可以使用$ http 在我的新控制器for do deletePost()函数中我有这个:
$ scope.deletePost = function(){ var pwd = JnttIdentity.currentUser.hashed_pwd;
var postidd = {
password: pwd,
id: $scope.post._id
};
var config = {
method: "DELETE",
url: '/api/post/',
data: postidd,
headers: {
"Content-Type": "application/json;charset=utf-8"
}
};
$http(config);
$location.path('/');
};
这实际上已经做了这个东西,但我想这样做没有像创建请求的$ http,我怎么能这样做?如何编辑此代码以执行请求?
createPost: function (newPostData) {
var newPost = new JnttPost(newPostData);
var dfd = $q.defer();
newPost.$save().then(function () {
dfd.resolve();
}, function (response) {
dfd.reject(response.data.reason);
});
return dfd.promise;
}
在我的routes.js中,我有这条路线:
app.delete('/api/post/', posts.deletePost);
答案 0 :(得分:0)
您可以在您创建的$ resource类(JnttPost)上调用delete,也可以在$ resource类返回的帖子上调用$ delete。
$ resource类已包含get / save / query / remove / delete函数,因此您不需要添加删除(save是create / POST,因此您需要包含PUT更新)。 / p>
以下是使用$ resource类调用delete的示例:
angular.module('test', ['ngResource'])
.factory('JnttPost', function ($resource) {
var PostResource = $resource('/api/post/:_id', {
_id: "@id"
}, {
update: {
method: 'PUT',
isArray: false
}
});
return PostResource;
})
.run(function(JnttPost){
JnttPost.delete({id: 123123123});
});