日々精進

新しく学んだことを書き留めていきます

ExtjsのStoreではまる

作っているアプリにMVCパターンを適用し、MemoryStoreをJsonStoreに変更したら以下のエラーを吐くようになりました。

Uncaught TypeError: Cannot call method 'indexOf' of undefined
Ext.apply.urlAppend
・・・

原因はStoreがAjaxを使ってJSONデータを取りに行くんだけど、そのリクエスト先URLがundefinedになってること。
URLはproxyに設定してあるし、APICRUD全部定義してあるのになぜ。。


原因がわからなかったのでJsonStoreを使うのをやめて素のStoreを使うことに。
そしたら今度は以下のエラーが。

Uncaught TypeError: Object # has no method 'read'
Ext.define.processResponse
・・・

本家のフォーラムUncaught TypeError: Object #<an Object> has no method 'read'によると、このエラーはStoreより前にStoreに紐付くModelをインスタンス化してないことが原因っぽい。
でもapp.jsの中で以下のようにモデルをrequireしてもだめ。。

Ext.application({
    name: 'Real',
    appFolder: 'app',
    controllers: [
        'Store'
    ],
    launch: function () {
    	Ext.require('Real.model.Resource');
    }
});



うーん困った。