0

ここでAngularJSを初めて使用し、$resourceを機能させるのに問題があります。ファクトリを作成し、新しい配管工を作成するためにバックエンドが必要とするもので $resource オブジェクトをハードコーディングしました。

ただし、関数を呼び出すと、入力したパラメーターのみを渡す代わりに、アプリのバックエンド (下の太字) に示すように、登録ハッシュの形式で「一種の」重複コンテンツが作成されます。それは基本的に私のパラメータの正確な複製です。それはどこから来たのか???

create() 関数は、plumbers/new.html テンプレートのボタンによって呼び出されます。

<button data-ng-click="create()">create</button>

そのハッシュはどこから来たのですか?

new.js

angular.module('ngappApp')
.controller('PlumbersNewCtrl', function ($scope, $window, $resource, Plumbers) {

$scope.create = function(){
  var test1 = new Plumbers({
    "business[email]": "superhero@super.com",
    "business[password]": "123123",
    "business[name]": "alice cullen",
    "business[company]": "alice pty ltd",
    "business[abn]": "12312312",
    "business[contact_number]": "0421772800",
    "business[address]": "118 glass street",
    "business[suburb]": "essendon",
    "business[postcode]": "3040",
    "business[employees_number]": "8"
  });

  test1.$save();
};

});

angular.module('ngappApp')
.factory('Plumbers', function($resource){
return $resource('/businesses');
});

バックエンドからの応答:

127.0.0.1 の POST "/businesses" を 2013-08-26 20:40:27 +1000 で開始 Businesses::RegistrationsController#create as JSON パラメータ: {"business[email]" =>"superhero@super.com ", "business[password]"=>"[FILTERED]", "business[name]"=>"alice cullen", "business[company]"=>"alice pty ltd", "business[abn]"= >"12312312", "business[contact_number]"=>"0421772800", "business[address]"=>"118 glass street", "business[suburb]"=>"essendon", "business[postcode]"= >"3040", "ビジネス[従業員番号]"=>"8","registration"=>{"business[email]"=>"superhero@super.com", "business[password]"=>"[FILTERED]", "business[name]"=>"alice cullen"," business[company]"=>"alice pty ltd", "business[abn]"=>"12312312", "business[contact_number]"=>"0421772800", "business[address]"=>"118 glass street" , "business[suburb]"=>"essendon", "business[postcode]"=>"3040", "business[employees_number]"=>"8"}} 警告: CSRF トークンの信頼性を検証できません (0.1ms ) トランザクションの開始 (0.0ms) トランザクションのロールバック 6ms で 400 個の不正な要求を完了 (ビュー: 0.1ms | ActiveRecord: 0.2ms)

編集:

ロギング test1 は、「余分な」なしで正しいパラメータを示しています

Resource {business[email]: "superhero@super.com", business[password]: "123123",                                           business[name]: "alice cullen", business[company]: "alice pty ltd",
business[abn]: "12312312"
business[address]: "118 glass street"
business[company]: "alice pty ltd"
business[contact_number]: "0421772800"
business[email]: "superhero@super.com"
business[employees_number]: "8"
business[name]: "alice cullen"
business[password]: "123123"
business[postcode]: "3040"
business[suburb]: "essendon"
4

1 に答える 1

1

2倍になっていません。Rails はあなたのパラメーターを registrations パラメーター内にラップしていますが、両方が表示されます。また、Rails で angularjs アプリを作成しています。

ところで、なぜそのようにコードをラップしているのですか? ハッシュ内にラップしたい場合は、次のようにする必要があります。

ビジネス = {name: "Name", blah:"Blah"}

于 2013-08-26T11:08:59.813 に答える