2016-04-16 3 views
0

私は剣道グリッドを持っています。ここで私はカスタムメソッドを使ってサーバーと通信します。これらのメソッドはRestangularを使用して実装されました。エンドポイント通信にカスタムメソッドを使用するKendo DataSourceが常に同じオブジェクトを削除する理由を教えてください。

私は何の問題もなく私が望むだけ多くのオブジェクトを追加できます(新規作成)。

シナリオ1:

  • オープンページの行に「削除」ボタンを上
  • クリック - それは作り付けの使用
  • レコードが削除されます
  • 別を選択し、コマンド「破壊」 「削除」ボタンをクリックしてください
  • 剣道は最初の試行のデータセットを2番目のものではないので送信します
  • ページそれは罰金

シナリオ2作品:(それが正常に動作しますページを更新後、最初の1である場合)レコードを削除

  • は新しいレコード
  • 結果を追加しますレコードが追加され、前の手順で送信した同じデータを含むサーバーへの追加の削除呼び出しが行われます。

datasourcのプロパティE:

  • Autosyncがfalse
  • batchに設定されているが、私はこれまでやった真

に設定されている:私はここにいくつかの質問と回答を読んでいる

  • Telerikのフォーラムですが、使用可能な答えはありません。

私は、サーバが剣道データソースが期待するものとは異なる何かを返すという問題があると想定しています。サービスエンドポイントはHttpStatusCode.Accepted(202)を返し、データは添付されません。しかし、私はTelerikに彼らの期待についての情報を見つけることはできません。削除後に返される内容は定義されていません。

誰かがこの問題に出会って解決しましたか? Telerikのデータソースが削除後にサーバーから返されると予想されることを知っている人はいますか?

答えて

0

私はdocumentationに、空の応答が更新の場合に成功として処理されていることを発見しました。さらに、私はe.success()への削除の結果を通過し、それは奇妙な動作を引き起こしました。

private destroyModuleScreen(e: kendo.data.DataSourceTransportOptions): kendo.data.DataSourceTransportOptions { 

      var contract: IKendoModuleScreenContract = <IKendoModuleScreenContract>(e.data.models[0]); 

      this.moduleScreensService.deleteModuleScreen(contract).then((result: any) => { 
       e.success(); 

       //wrong 
       //e.success(result.plain()); 
      }, (reason): any => { 
       e.error(reason); 
      }); 

      return e; 
     } 
関連する問題