1

DojoJsonRESTストアを使用してサーバー上のRESTfulAPIと通信しています。GETメソッドとQUERYメソッドは、非同期コールバックハンドラーで非常にうまく機能します。ただし、JsonRESTストアに新しいオブジェクトを投稿するPUTリクエストには、非同期コールバック機能がないようです。その場合、PUT要求が実行されて成功した場合にのみ、イベントを発生させることはできません。

ドキュメント(http://dojotoolkit.org/reference-guide/1.7/dojo/store/JsonRest.html)から:

 require(["dojo/store/JsonRest"], function(JsonRestStore){
     var store = new JsonRestStore({target: "/Table/" });

     store.get(3).then(function(object){
        // CALLBACK HERE :-)
     });

     store.query("foo=bar").then(function(results){
       // CALLBACK HERE :-)
     });

     store.put({ foo: "bar" }, { id: 3 }); // NO CALLBACK CAPABILITIES ???

     store.remove(3); // NO CALLBACK CAPABILITIES ???
});

何か案は ?

ありがとう

4

3 に答える 3

2

を使ってみましstore.put({ foo: "bar" }, { id: 3 }).then(function(){});store.remove(3).then(function(){});か?これらのドキュメントこの投稿を確認してください。

于 2012-04-30T15:44:01.153 に答える
1
put: function(object, options){
    // summary:
    //      Stores an object. This will trigger a PUT request to the server
    //      if the object has an id, otherwise it will trigger a POST request.
    // object: Object
    //      The object to store.
    // options: dojo.store.api.Store.PutDirectives?
    //      Additional metadata for storing the data.  Includes an "id"
    //      property if a specific id is to be used.
    //  returns: Number
      ....
      return xhr( ....);
    }

ドキュメントが間違っている、返品は実際には道場です。今述べたように延期されました。

関数プロトタイプがfunction(responseText、ioArgs)を読み取ることを期待します

于 2012-04-30T16:35:52.397 に答える
0

dojoのドキュメントには、PUTはストアの更新用であるため、新しいアイテムを追加するにはPOSTを使用する必要があると記載されています。

于 2013-10-01T01:09:52.317 に答える