毕设问题小记——Extjs报buffered未定義エラー
2289 ワード
今日の午後、機能を完了する予定でしたが、Extjs gridファイルを作成する際に問題が発生しました.
この問題に遭遇したのは初めてではありません.これまでは対応するファイルをすべて削除して再構築するのが一般的でした.今度は原因を見つけようとする.Extjs gridはかなり書かれているので、熟練しているので、ファイル構造に問題がないことが確認でき、コードをチェックしても明らかなエラーは見つかりません.chromeのデバッグツールでMstudentListにナビゲートします.jsの22行、内容は:this.callParent(arguments)なので、MstudentListにエラーが表示されていると判断できますが、これに関連するファイルはstore、model、controller、viewファイルのみです.store、modelを再度チェックしてエラーがないことを確認し(この2つのファイルは簡単で、一目でわかります)、viewとcontrollerを最小化して構成します(必要ないくつかの属性だけを構成します)、エラーが依然として残っていることを発見します.
chromeを使用してページにロードされたリソースファイルを表示すると、MstudentLsitバインドされたstoreファイルがロードされていないことがわかり、ソースファイルとwebrootの下にファイルがあることを確認し、urlを使用して直接アクセスしてもいいです.これは思わず憂鬱になったのですが、いったい何が原因なのでしょうか.突然Extjsの動的ロードメカニズムを思いついて、storeにファイルが導入されないのではないでしょうか.MstudentLsitでstoreプロパティが構成されていることを確認すると、requires(これはパッケージを導入するのに相当し、異なるネーミングスペースで導入する必要がある)に対応するstoreファイルがなければ、ロードされず、ちょうどエラーが発生する可能性があることをふと思いました.一般的にextjs MVCの構成を容易にするためにrequiresが必要なすべてのファイルをcontrollerの構成に置くことに慣れ、controllerをチェックし、ついにエラーを発見した:managerを導入すべきだった.ユーザーはadminと書きましたuserは、ちょうどadminの下にもuserがありますが、構造が違います.
最後に一言:不注意な災い!このエラーに遭遇した場合は、まず各ファイルと導入されたファイルのネーミングスペースが正しいかどうかを確認する必要があります.ほとんどの場合、この原因です.
Uncaught TypeError: Cannot read property 'buffered' of undefined ext-all.js:38
Ext.define.initComponent ext-all.js:38
b.implement.callParent ext-all.js:38
Ext.define.initComponent MstudentList.js:22
Ext.define.constructor ext-all.js:38
b.implement.callParent ext-all.js:38
Ext.define.constructor ext-all.js:38
i ext-all.js:38
Ext.apply.widget ext-all.js:38
Ext.define.create ext-all.js:38
Ext.define.lookupComponent ext-all.js:38
Ext.define.prepareItems ext-all.js:38
Ext.define.add ext-all.js:38
Ext.define.openTab Menu.js:48
Ext.define.loadMenu Menu.js:32
この問題に遭遇したのは初めてではありません.これまでは対応するファイルをすべて削除して再構築するのが一般的でした.今度は原因を見つけようとする.Extjs gridはかなり書かれているので、熟練しているので、ファイル構造に問題がないことが確認でき、コードをチェックしても明らかなエラーは見つかりません.chromeのデバッグツールでMstudentListにナビゲートします.jsの22行、内容は:this.callParent(arguments)なので、MstudentListにエラーが表示されていると判断できますが、これに関連するファイルはstore、model、controller、viewファイルのみです.store、modelを再度チェックしてエラーがないことを確認し(この2つのファイルは簡単で、一目でわかります)、viewとcontrollerを最小化して構成します(必要ないくつかの属性だけを構成します)、エラーが依然として残っていることを発見します.
chromeを使用してページにロードされたリソースファイルを表示すると、MstudentLsitバインドされたstoreファイルがロードされていないことがわかり、ソースファイルとwebrootの下にファイルがあることを確認し、urlを使用して直接アクセスしてもいいです.これは思わず憂鬱になったのですが、いったい何が原因なのでしょうか.突然Extjsの動的ロードメカニズムを思いついて、storeにファイルが導入されないのではないでしょうか.MstudentLsitでstoreプロパティが構成されていることを確認すると、requires(これはパッケージを導入するのに相当し、異なるネーミングスペースで導入する必要がある)に対応するstoreファイルがなければ、ロードされず、ちょうどエラーが発生する可能性があることをふと思いました.一般的にextjs MVCの構成を容易にするためにrequiresが必要なすべてのファイルをcontrollerの構成に置くことに慣れ、controllerをチェックし、ついにエラーを発見した:managerを導入すべきだった.ユーザーはadminと書きましたuserは、ちょうどadminの下にもuserがありますが、構造が違います.
最後に一言:不注意な災い!このエラーに遭遇した場合は、まず各ファイルと導入されたファイルのネーミングスペースが正しいかどうかを確認する必要があります.ほとんどの場合、この原因です.