Uncaught TypeError: Cannot read property 'isSynchronized' of undefined
Uncaught TypeError: Cannot read property 'isSynchronized' of undefined
我在对 ExtJS 网格进行排序时遇到问题。我正在使用 Ext JS 版本 5.1.1.451。
网格加载良好,但是当我尝试对列进行排序时出现 "Uncaught TypeError: Cannot read property 'isSynchronized' of undefined" 错误。
方法addCls
在鼠标移动时触发,当错误发生时,me.getData()
returnsundefined
,其中me
是
constructor
$observableInitialized: true
component: constructor
config: Object
destroy: () {}
dom: null
el: null
events: Object
hasListeners: statics.prepareClass.HasListeners
id: "ext-quicktips-tip"
initConfig: () {}
initialConfig: Object
isDestroyed: true
lastBox: null
managedListeners: Array[0]
shadow: null
这是发生错误的addCls
方法:
addCls: function(names, prefix, suffix) {
var me = this,
elementData = me.getData(),
hasNewCls, dom, map, classList, i, ln, name;
if (!names) {
return me;
}
if (!elementData.isSynchronized) {
me.synchronize();
}
有没有人遇到过这个问题?这是一个已知问题还是我做错了什么?
谢谢
我重写了 handleMouseDown 方法并注释掉了快速提示部分。
Ext.override(Ext.dd.DragDropManager, {
handleMouseDown: function (e, oDD) {
var me = this,
xy, el;
me.isMouseDown = true;
//if (Ext.quickTipsActive) {
// Ext.tip.QuickTipManager.ddDisable();
//}
me.currentPoint = e.getPoint();
if (me.dragCurrent) {
me.handleMouseUp(e);
}
me.mousedownEvent = e;
me.currentTarget = e.getTarget();
me.dragCurrent = oDD;
el = oDD.getEl();
Ext.fly(el).setCapture();
xy = e.getXY();
me.startX = xy[0];
me.startY = xy[1];
me.offsetX = me.offsetY = 0;
me.deltaX = me.startX - el.offsetLeft;
me.deltaY = me.startY - el.offsetTop;
me.dragThreshMet = false;
}
});
如果谁有更好的答案,post,如果好的话我会标记的
我遇到这个问题是因为我根据需要单独加载的一些映射渲染了不同的值。如果映射未加载到视图模型中,则渲染器似乎会因该错误而失败。
我通过一些检查是否存在所需内容来解决它:
// on the renderer for the column where I have a combobox editor field
renderer: function(value) {
var mappings = vm.get('ruleMapping')
if(!!mappings) {
var rule = _.find(mappings, ['id', value]
if(!!rule) {
return `<a href="${rule.link}>${rule.name}</a>"`
}
}
return 'Setting value'
}
我在对 ExtJS 网格进行排序时遇到问题。我正在使用 Ext JS 版本 5.1.1.451。
网格加载良好,但是当我尝试对列进行排序时出现 "Uncaught TypeError: Cannot read property 'isSynchronized' of undefined" 错误。
方法addCls
在鼠标移动时触发,当错误发生时,me.getData()
returnsundefined
,其中me
是
constructor
$observableInitialized: true
component: constructor
config: Object
destroy: () {}
dom: null
el: null
events: Object
hasListeners: statics.prepareClass.HasListeners
id: "ext-quicktips-tip"
initConfig: () {}
initialConfig: Object
isDestroyed: true
lastBox: null
managedListeners: Array[0]
shadow: null
这是发生错误的addCls
方法:
addCls: function(names, prefix, suffix) {
var me = this,
elementData = me.getData(),
hasNewCls, dom, map, classList, i, ln, name;
if (!names) {
return me;
}
if (!elementData.isSynchronized) {
me.synchronize();
}
有没有人遇到过这个问题?这是一个已知问题还是我做错了什么?
谢谢
我重写了 handleMouseDown 方法并注释掉了快速提示部分。
Ext.override(Ext.dd.DragDropManager, {
handleMouseDown: function (e, oDD) {
var me = this,
xy, el;
me.isMouseDown = true;
//if (Ext.quickTipsActive) {
// Ext.tip.QuickTipManager.ddDisable();
//}
me.currentPoint = e.getPoint();
if (me.dragCurrent) {
me.handleMouseUp(e);
}
me.mousedownEvent = e;
me.currentTarget = e.getTarget();
me.dragCurrent = oDD;
el = oDD.getEl();
Ext.fly(el).setCapture();
xy = e.getXY();
me.startX = xy[0];
me.startY = xy[1];
me.offsetX = me.offsetY = 0;
me.deltaX = me.startX - el.offsetLeft;
me.deltaY = me.startY - el.offsetTop;
me.dragThreshMet = false;
}
});
如果谁有更好的答案,post,如果好的话我会标记的
我遇到这个问题是因为我根据需要单独加载的一些映射渲染了不同的值。如果映射未加载到视图模型中,则渲染器似乎会因该错误而失败。
我通过一些检查是否存在所需内容来解决它:
// on the renderer for the column where I have a combobox editor field
renderer: function(value) {
var mappings = vm.get('ruleMapping')
if(!!mappings) {
var rule = _.find(mappings, ['id', value]
if(!!rule) {
return `<a href="${rule.link}>${rule.name}</a>"`
}
}
return 'Setting value'
}