0

angular から始めて、サーバーからデータを取得してから、$resources で変更をポストバックしようとしています。

「保存」機能以外は正常に機能しています。データはサーバーに戻されません。

ここにhtmlがあります

<div ng-controller="myCtrl">
<div ng-repeat="obj in objs">
    <h2>{{obj.data_1}}</h2>
    <h3>{{obj.data_2}}</h3>
    <input type='text' ng-model="obj.data_1"><br/>
    <textarea ng-model="obj.data_2" required></textarea><br/>
    <button ng-click="save()">Save</button>
</div>
</div>

service.js

'use strict';
angular.module('App.services', ['ngResource']).
factory('Obj', function($resource){
    return $resource('url/to/json');
});

コントローラー.js:

'use strict';
angular.module('App.controllers', []).
controller('myCtrl', ['$scope', 'Obj', function($scope, Obj) {
    $scope.objs = Obj.query();
    $scope.save = function() {
        $scope.objs.save();
    }
}]);

保存したときに何もポストバックされない理由を知っていますか?

4

2 に答える 2

0

$resourceGET に対して宣言されている方法で、POST に対して別の宣言を行うべきではありませんか? それぞれ$resourceが特定の REST サービスを指定します。

//services.js
'use strict';
angular.module('App.services', ['ngResource'])
.factory('GetObj', function($resource){
    return $resource('url/to/json');
}
.factory('SaveObj', function($resource){
    return $resource('url/to/post');
});

//controller.js
'use strict';
angular.module('App.controllers', []).
controller('myCtrl', ['$scope', 'GetObj', 'SaveObj', function($scope, GetObj, SaveObj) {
    $scope.objs = Obj.query();
    $scope.save = SaveObj.save(objs, function(resp) {
        //Callback
        console.log("Response from POST: %j", resp);
    }
}]);
于 2013-06-19T21:55:46.420 に答える