我想在Angularjs中運行一個自定義的PUT,但是我無法讓我的生活得到它的工作。我需要定義UserResource和user,但只有更新函數第一個位置的參數被定義。我能做些什麼來定義用戶和UserResource?無法讀取未定義的屬性。如何定義?
(function() {
class AdminController {
constructor(User, Auth) {
this.users = User.query();
this.Auth = Auth;
}
//here user is defined and I can run the delete function
delete(user) {
user.$remove();
this.users.splice(this.users.indexOf(user), 1);
}
// and if I put user into the first position it is defined but UserResource isn't
// as written here it isn't defined either.
update(UserResource, user) {
var $id = user._id;
UserResource.update({ id:$id }, user);
}
}
angular.module('wcsdesktopApp.admin')
.controller('AdminController', AdminController);
})();
編輯添加的更多信息
我所說的更新功能是這樣的:
<table>
<tr>
<a ng-click="admin.update(user)" class="update"><span class="fa fa-refresh fa-2x"></span></a>
</tr>
<tr>
<a ng-click="admin.delete(user)" class="trash"><span class="fa fa-trash fa-2x"></span></a>
</tr>
</table>
我列入參考刪除功能,因爲這是工作。
UserResource是AngularJS $resource自定義放置請求。
(function() {
function UserResource($resource) {
return $resource('/api/users/:id/:controller', {
id: '@_id'
}, {
changePassword: {
method: 'PUT',
params: {
controller: 'password'
}
},
update: {
method: 'PUT'
},
get: {
method: 'GET',
params: {
id: 'me'
}
}
});
}
angular.module('wcsdesktopApp.auth')
.factory('User', UserResource);
})();
你是如何調用'update'? 'UserResource'應該是某種服務嗎? –
我用更多的信息更新了這個問題。讓我知道如果有幫助 – Rarepuppers
你必須注入你的服務到你的控制器。這就是爲什麼這個部分不起作用。我可以給你一個完整的答案。 –