0

ツリー階層の任意のフォルダーを右クリックして、ツリーのフォルダーを削除するメニュー項目「削除」に対して定義された機能があります。しかし、それをクリックすると、「Store is null or not an object error in dojo」というエラーメッセージが表示されました

このエラー メッセージを修正する方法を教えてもらえますか?以下の関数に何か問題がありますか?

<ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">   
      <li dojoType="dijit.MenuItem" data-dojo-props="disabled: false,
                                     onClick: function (evt){
                                     store.deleteById(selectedItemId);
                                     resetEditor();
                                 }",>Delete project</li></ul>

ツリー構造

- Main Project 1 
Sub Project 1_1  
Sub Project 1_2
 * sub Project 1_3 

+ Main Project 2 - 
Main Project 3 

Sub Project 3_1 - 
Sub Project 3_2 
Sub Project 3_2_1
4

1 に答える 1

0

onClick 関数が MenuItem コンテキストで実行されているように見えます。つまり、onclick 関数では、「this」が MenuItem ウィジェット インスタンスを参照していることを意味します。

onClick メソッドで store 変数を使用するには、最初に次のようにウィジェットで参照できます。

<ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">   
  <li dojoType="dijit.MenuItem" data-dojo-props="disabled: false,
                                 _store: store,
                                 onClick: function (evt){
                                 _store.deleteById(selectedItemId);
                                 resetEditor();
                             }",>Delete project</li></ul>

または、ウィンドウ コンテキストでグローバル ストア オブジェクトを参照できます。

<ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">   
  <li dojoType="dijit.MenuItem" data-dojo-props="disabled: false,
                                 onClick: function (evt){
                                 window.store.deleteById(selectedItemId);
                                 resetEditor();
                             }",>Delete project</li></ul>
于 2013-10-14T09:05:33.513 に答える