javascript - Extjs 同步商店给我一个 url is undefined error under specific conditions

标签 javascript extjs extjs4

我有 4 个启用了拖放插件的网格。它们的初始网格取决于数据库中名为 state_id 的值。

当我将所选行放入新网格时,我会更新 state_id 值,然后告诉它与数据库同步并更新相关项目的值。

enter image description here

这在大多数情况下工作正常。当发生以下情况时,我收到 this URL is undefined 错误

  1. 用户点击从网格中拖动 A 行 1 到网格 2
  2. 用户将 A 行从 网格 2 到网格 1
  3. 错误!网址 未定义。

此错误似乎仅在第一个添加到网格的项目最初来自同一网格时才会发生。

  1. 用户点击将行 A 从网格 1 拖到网格 2
  2. 用户点击将行 B 从网格 2 拖到网格 1
  3. 用户点击将行 A 从网格 2 拖到网格 1
  4. 按预期工作!

在我的 Controller 中放置事件处理程序:

dropit: function (node, data, dropRec, dropPosition) {
    if (node.dragData.records[0].store.$className == "AM.store.BacklogCards")
    {
        data.records[0].set('state_id', 1);
        this.getBacklogCardsStore().sync();
    }
    else if (node.dragData.records[0].store.$className == "AM.store.InprogressCards")
    {
        data.records[0].set('state_id', 2);
        this.getInprogressCardsStore().sync();
    }
    else if (node.dragData.records[0].store.$className == "AM.store.ReviewCards")
    {
        data.records[0].set('state_id', 3);
        this.getReviewCardsStore().sync();
    }
    else
    {
        data.records[0].set('state_id', 4);
        this.getDoneCardsStore().sync();
    }
    //node.dragData.records[0].store.sync();
},

关于导致此问题的原因以及如何解决它的任何想法?

谢谢

最佳答案

我可以建议您使用一个商店而不是三个,并简单地添加三个均等的网格,全部使用相同的商店,但对 state= 进行过滤吗?

这样您就可以简单地更新放置时的状态,刷新两个相关的网格并同步一个商店。

关于javascript - Extjs 同步商店给我一个 url is undefined error under specific conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628558/

相关文章:

javascript - Material Design 组件和 Reactjs 输入字段

extjs - 如何将加载掩码设置为整个网页,而不仅仅是网格面板

extjs - 在 Selenium Webdriver 中使用 Element 的工具提示作为定位器

extjs4 - 如何专注于文本字段?

Extjs 4 Controller 网格编辑器更改事件

javascript - 如何在 ECMAScript 中将点转换为极坐标?

javascript - 我想在提交表单时显示确认弹出窗口

javascript - 递归堆栈 - Javascript

model-view-controller - ExtJs 中的 MVC 是一刀切的解决方案吗?

javascript - 在 Extjs 4 中使用 getClass 隐藏操作列图标