13

AngularJS サイトのクックブック フォームの例は、クライアントの状態のみを保存します。サーバーに送信するにはどうすればよいですか?

または、関数form.submit()内のフォームでjQuery を使用するにはどうすればよいですか?ng:click="save()"

編集 - これを行う 2 つの方法が見つかりました (以前に貼り付けた HTML マークアップも削除しました。ソースについては、高度なフォーム クックブックの例を参照してください)。

  1. http://webpac2.rot13.org:3000/conference/Work (Dobrica Pavlinusic 作) を使用して、リソースを使用して AngularJS の方法でデータをサーバーに JSON 形式で送信します。サーバー側で問題がありました-AngularJSは問題なく送信していましたが、grailsはそれを壊していました(firebugとrequest content-lengthに従って)。私はこれをもっと調べる必要があります。のようなリソース メソッドのコンテンツ タイプを angular で変更するにはどうすればよい$save()ですか?

  2. フォームを入力し、送信ボタンを使用します。私は単一ページの Web アプリをやっていないので、この方法を使用しました。ほとんどの検証はクライアント上で行われ、サーバー上でさらにいくつかの検証が行われましたが、これで十分でした。

これをここに置くだけで、他の誰かが可能な解決策と最善のアプローチにこれを使用できるようになります。

4

2 に答える 2

12

ビュー(html テンプレート) とロジック(JS コード)が厳密に分離されていることに注意してください。これは主にテスト容易性のためです。

正しい方法は、$resource (REST の場合) または低レベルの$httpを使用して、モデルをサーバーに送信することです。テンプレートで仕事をする代わりに。

簡単な例 - HTML テンプレート

First: <input type="text" ng-model="person.first" />
Last: <input type="text" ng-model="person.last" />
<button ng:click="save()">Save</button>

JavaScript - コントローラー

function FormCntl($scope, $http) {
  $scope.save = function() {
    $http.put('/save.py', $scope.person);
  };
}
于 2011-08-22T07:49:19.343 に答える
0

私の知る限り、 angular source を編集するために angular がサーバーに送信するヘッダーを変更する良い方法はありません。これは計画的な機能強化ですが、まだ完了していません。

開発者はとてもフレンドリーで知識が豊富なので、このような具体的な質問をするには、 angular google groupが適していると思います。

于 2011-06-01T12:34:44.883 に答える