【问题标题】:Issues in new folder structure in a dojo tree道场树中新文件夹结构的问题
【发布时间】:2013-10-07 17:29:25
【问题描述】:

我怎样才能使商店对下面的 ItemFileWriteStore 函数可见?我使用下面的语法是否正确?它在我的代码中不起作用,请提出建议。

 store = new dojo.store.Observable(dojo.data.ItemFileWriteStore{
target:'store'
url: "my url"

}

我在我的 dojo 树代码中编写了一个小函数,如下所示,在创建的树结构的父文件夹下添加新的子文件夹,但它最终没有保存在商店中。它一直打开直到提示“文件夹名称”,然后当我添加文件夹名称并单击确定时,它没有保存在文件夹树结构中。有人可以建议哪里出错了吗?

这是我创建不起作用的新文件夹的代码:

function myFunction(item){
item.name = prompt("Folder name");
var childItem = {
              name: "New Folder",
              id: Math.random(),
              parent: item.id
            };
 store.put(childItem, {overwrite: true
                  });

           store.put(item);
         } 

【问题讨论】:

    标签: javascript dojo dijit.tree


    【解决方案1】:

    dojo.data.ItemFileWriteStore 是旧的 dojo 数据存储,将来会被弃用。推荐的新 dojo 存储在 dojo.store 模块中,例如 Memory store 和 JsonRest store。

    dojo.store.Observable 仅适用于新的 dojo.store 。你可以这样做:

    1. 要么将你的 dojo.data.ItemFileWriteStore 更改为 dojo.store.Memory

    2. 或者用dojo.store.DataStore包装你的dojo.data.ItemFileWriteStore

    【讨论】:

    • 嗨,肖恩,我试过了,但它不适用于我的情况。在我的例子中,我有一个包装为 Observable 的 ItemFileWriteStore,并且一个函数正在观察一个空的 query()。当添加具有新 id 的新对象(文件夹)put() 时,将触发观察函数。但是,如果我在商店中放置()一个对象来更新它,则不会通知观察者并且没有任何内容被更新。请在小提琴链接中找到我当前的代码下方。我也尝试使用内存存储,但它不适用于可观察的并且新文件夹没有添加到树中。 jsfiddle.net/deb73268/EQeSh/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多