gpt4 book ai didi

angularjs - 如何全局配置 Laravel 的 Route::resource 以与 ng.resource(每个 ng 资源的 Laravel 路由)兼容?

转载 作者:可可西里 更新时间:2023-11-01 16:13:44 25 4
gpt4 key购买 nike

Laravel 5 使用 put/patch 动词来更新资源,而 Angular ng.resource 默认使用 post 来创建和更新。如何全局设置 Laravel 的 Route::resource 以遵循 Angular 行为(每个 ng 资源的 Laravel 路由)?

(也可以使 Angular 与 Laravel 兼容,但我不确定哪种方法更好。)

最佳答案

我不知道 laravel 的 REST 功能。但我仍然建议修改 Angular 的行为。

放置

实现 PUT 非常简单。

您可以在使用 $resource(url, parameters, actions) 创建工厂时修改 ng-resource 的行为,第三个参数描述自定义操作 ...

https://docs.angularjs.org/api/ngResource/service/ $resource 有一个关于创建 PUT 方法的示例,该方法将在服务上作为 update 提供,在实例上作为 $update 提供。 :

app.factory('Notes', function($resource) {
return $resource('/notes/:id', null,
{
'update': { method:'PUT' }
});
}]);
// In our controller we get the ID from the URL using ngRoute and $routeParams
// We pass in $routeParams and our Notes factory along with $scope
app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
function($scope, $routeParams, Notes) {
// First get a note object from the factory
var note = Notes.get({ id:$routeParams.id });
$id = note.id;

// Now call update passing in the ID first then the object you are updating
Notes.update({ id:$id }, note);
// This will PUT /notes/ID with the note object in the request payload
});

补丁

理论上也可以创建 PATCH 行为,此处对其进行了描述 - Partial Updates (aka PATCH) using a $resource based service?

但我不会用 ng-resource 那样做。您可以通过定义 transformRequest 或 transformResponse 函数来做很多事情(我用它来利用 Java Spring REST API)。但是 ng-resource 本身仍然不支持 PATCH,所以如果你需要,我宁愿尝试不同的 REST 层。

关于angularjs - 如何全局配置 Laravel 的 Route::resource 以与 ng.resource(每个 ng 资源的 Laravel 路由)兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31782465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com