なぜかわからないけど、
saveイベントにwrite用のハンドラが設定してあって。。
いわずもがな、write用に実装してあるから
期待した結果は得られないわけです。
直しました。過去のエントリでsaveイベントが発火されてwriteが呼ばれる云々
ってのはこれが原因でした。ごめんなさい。
で、今の基礎実装でサポートするのは
write
load
exception
と絞って実装することにした。
exceptionイベントハンドラの実装をモデルに追加して
今回の騒動もひとまず終了。
exceptionの
type: remoteとresponseの違いは
httpProxyのonWrite
reader.readResponseを実行してるブロック内で
例外が発生した場合はresponse
そうじゃなくてsuccessがfalseで設定されてきた場合はremoteと。
そんな具合っぽいです。
>(ほかのProxyクラスもたぶん同様になってるとおもう。ScriptTagProxyはそうだった。
>ブロックといってもres = reader.readResponse(action, response);の一行ですが、
>内部ではレスポンスの有無、rootの有無!!←(これこれ)。
>レスポンスオブジェクト生成、successプロパティ有無のチェックなどをやってます。)
>#rootの有無チェック・・・これらすべてちゃんとexception投げてくれてるではないか!
>#過去のwriterでどはまりした件。。。だからちゃんと実装しないとどはまりする。
だから雰囲気としてはこんなかんじになるのかな。
exceptioncallback = function(proxy, type, action, options, res, arg) {
var me = this;
if (type === 'remote') {
alert('serverサイドでの不備');
} else if (type === 'response') {
alert('response内容解析中の例外発生');
}
//画面の再描画
if (me.view.hasListener('crudreflesh')) {
me.view.fireEvent('crudreflesh');
}
};
0 件のコメント:
コメントを投稿