存储为空或不是dojo中的对象错误

时间:2013-10-13 21:40:25

标签: javascript dojo

我在右侧单击树层次结构的任何文件夹时为菜单项“删除”定义了一个功能,以删除树的文件夹。但点击它我得到以下错误消息“存储为空或不是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

1 个答案:

答案 0 :(得分: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>