また眠りながらコードを書いていたせいか
どこまで書いてたかわからなくなってUNDOしても
何があってるかわからなくなって。
要するに動かなくなって困ったということ。
現象は
ProxyにapiでCRUD別にURLを設定してEditorGridで編集してもUpDateでなくてCreate
が呼ばれてしまう。
追ってみて途中で気がつく。
storeのsaveメソッドは
Delte
Create
Updateの順に実行される。
判断基準は
removeリスト要素チェック→Delte実施。
ModifiedRecordsリスト取得
→rs[i].phantom情報化チェック→新規追加行か?
→
あぶれたものをUpdate
とこんな具合?
さて、このphantomフラグ。
なぜtrueなんだろう?
このphantomフラグがtrueに為る契機は
record.id内による。
このidに触れる部分はrealizeメソッド、でいいのかな。
でもrealizeは今回直接的には関与せず。
問題はidが設定されていないとされてデフォルトの
ExtJs側が付与するコードつまり現実でない状態ってのが問題。
プライベートメンバの_phidにidせっとっして
そのあとid=でdataのmeta.idproperty値をセットしている。。
あれ?metaデータってid,root,totalPropertyジャなかったっけ?
ソースコードを確認するとidで実装してる。
これじゃぁ認識してくれないわけだ。
そそくさとidからidPropertyに変更して実行。
ちゃんとUpdate用のURL、呼んでくれました。めでたし。
#疲れているときのプログラムは本当に危険がいっぱい。
しかしこのmetaの説明ってちゃんとしたのはどこに書いてあるんだろう。
ひとまずラップして使うことにした。
/**
* @class ExtWrapper.Reader システム共通リーダ
* @namespace ExtWrapper
* @extends Ext.data.JsonReader
* @cfg {Array/Object} フィールド情報
* @constructor and @param
*/
ExtWrapper.Reader = function(config){
var meta = {
idProperty: 'id',
root: 'rows',
totalProperty: 'results'
};
Ext.applyIf(this, config);
ExtWrapper.Reader.superclass.constructor.call(this, meta, config );
}
Ext.extend( ExtWrapper.Reader, Ext.data.JsonReader,{
});
転職用の日記だったのですが趣味でExtJsを使用して遊んでます。 いろいろと作業期間があく為、そのための備忘録ブログです。記事内容等で問題等があっても責任は取りません。とうとう趣味プログラマになりました。
登録:
コメントの投稿 (Atom)
node + ejs + Socket.io のサンプル
まずい。。 一年間、一回も更新してない!!! つまり、、 趣味の時間がほぼ皆無ということの現れです。 業務と子育てに追われた一年でしたね。。。。。 危なく年をこすところだった。あぶない。なぶあい。 話を変えて。 今月初旬に 社内でちょっとしたプレゼンをする事に...
-
bakeでBancha用のモデルとコントローラの作成 bakeで自動生成します。 まず、カレントディレクトリをappにして cd UserDir/public_html/app ./Console/cake bake を実行。 DB設定 Welcome...
-
banchaを使ってみる banchaのサイトは こちら から インストールから まずはCakeの設置。 (bancha:0.9.5はcake2.1.X(現在は2.1.5)に対応しています。 Dispacherの実装が2.2.Xだとことなるため、Banch...
-
疎通させてみる Bancha使ってみたくて cakeをざっと流し読みしたけど、 まだ疎通できてないので疎通させてみようと思います。 お題はBanchaのサンプルをMVCに再配置、と、 テスト的にコンポーネントからイベント発火させて Mainコントローラでディスパッ...
0 件のコメント:
コメントを投稿