2

backbone.js と Apache-CXF Rest-ful Web サービスを使用しています。

ノードの構造 (親子関係) のようなツリーがあります。

ユーザーは、フロントエンド (UI) から任意のノードの子を作成できます。

その時点で、どの REST 呼び出しを行いたいですか?

オプションは次のとおりです。

  1. PUT (更新) 親リクエストを呼び出して、親を更新することができ、バックエンドに送信されます。

  2. POST (create) child request 、バックエンドから create child を呼び出すことができます。

私の疑問は、これら2つの呼び出しを使用したい、または同じためのより良い方法はありますか?

var TreeModel = Backbone.Model.extend({

    defaults : {

        id : undefined,

        name : "", 

        children : [] 

    },

    urlRoot : '/api/tree'

});

は私のモデルです。

私が使用した私のjsコードで:

   var parent = new Treemodel();

   ..... (some operations)  .....

   var child1 = new Treemodel();

   child1.save();

   parent.children.push(child1);

   parent.save();

より良い方法はありますか?

4

1 に答える 1

1

それがあなたにとってうまくいくなら、あなたのアプローチは悪くはありません。

私の頭に浮かぶ別のオプション(あなたのものよりもはるかに優れているわけではありませんが)は、子のみをサーバーに保存してからfetch()親ノードに保存することです。これにより、クライアント コードのロジックが簡素化されます。

コードは次のようになります。

var parent = new Treemodel();

[...]

var child1 = new Treemodel();

child1.save({
    success: function () {
        parent.fetch();
    }
});

いずれにせよ、「成功」コールバックを追加して子の作成が成功した場合にのみ、親を保存することをお勧めします。コードは次のようになります。

var parent = new Treemodel();

[...]

var child1 = new Treemodel();

child1.save({
    success: function () {
        parent.children.push(child1);
        parent.save();
    }
});
于 2013-11-05T11:25:49.370 に答える