如何使用AngulaJS Rails资源更新资源

时间:2015-08-19 20:14:14

标签: ruby-on-rails angularjs angularjs-rails

我使用AngularJS Rails Resource并将其配置为:

angular.module('admin')
.factory('Page', ['railsResourceFactory', 'API_PROVIDER', function(railsResourceFactory, API_PROVIDER) {
  return railsResourceFactory({
    url: API_PROVIDER.full_path + 'pages', //which resolves to https://example/api/pages
    name: 'page'
  });
}]);

在我的控制器中:

(function() {
  'use strict';

  angular
    .module('admin')
    .controller('PagesEditController', PagesEditController);

  /** @ngInject */
  function PagesEditController($timeout, webDevTec, toastr, $scope, $moment, Page, Session, $http, $location, $anchorScroll, $stateParams) {

    $http.defaults.headers.common.Authorization = 'Token token='+ Session.token;

    var page = Page.get($stateParams.pageId).then(function (result) {
      $scope.editPage = result;
    });

    $scope.savePage = function (page) {
      page.update();
    }

  }
})();

在我看来,我有:

...
<input type="text" ng-model='editPage.title' class="form-control underline-input">
<button ng-click='savePage(editPage)' class="btn btn-green btn-ef btn-ef-7 btn-ef-7h" activate-button="success"><i class="fa fa-envelope"></i> Save page</button>
...

编辑:我的保存功能:

$scope.savePage = function (page) {
  Page.get($stateParams.pageId).then(function (result) {
    result.title = $scope.editPage.title;
    result.content = $scope.editPage.content;
    result.update();
  })
}

但它不起作用。我得到一个错误:No route matches [PUT] "/api/pages"这意味着PUT请求在提交请求时没有传递对象ID。

我使用Mongoid btw。

我在这里缺少什么?

0 个答案:

没有答案