angularjs|ngResourceとlaravelのRoute::resourceを組み合わせる実装例
laravel
のResourceful
ルーティングとangularjs
のngResource
を組み合わせて効率よくデータのやりとりをする方法を紹介します。
まずroutes.php
にResource
ルーティングを定義します。only
で使用したいルートのみ定義することができます。
Route::resource('test', 'TestController', array('only' => array('index', 'store', 'show', 'update')));
サーバにアクセスする処理としてTestServicefactory
で定義します。 コントローラで取得・登録・更新などをシンプルに記載することができます。
var app = angular.module('app', ['ngResource']); //ngResourceを追加します
//factoryを定義します
app.factory("TestService", function($resource){
return $resource('/test/:id', { id: '@id' }, {
update: {
method: 'PUT'
}
});
});
app.controller('TestController', function ($scope, TestService){
//下記のようにresourceにアクセスできます
TestService.get({ id: $scope.id }); //1件取得 show
TestService.query(); //取得 index
TestService.save($scope.input); //登録 store
TestService.update($scope.input); //更新 update
});