我使用拉力赛自定义网格在SDK2.0应用中出错:
只有IE(当前)出错,如果我在本地运行它,它就不会出错,只有当我在Rally中安装并运行它时才会出错。
我不知道它是一个Rally问题还是一个EXTJS问题。
SCRIPT5007:无法获取属性“modelField”的值:object为null或undefined sdk.js,第4行,第1276692页
失败的代码:
if(e.modelField&&e.modelField.hidden)
围绕该错误的背景:
{xtype:"rallytextfield",allowBlank:false,removeNameAttribute:true}}},PortfolioItem:function(){return{hidden:true}},AttributeType:function(b){return a.apply(Rally.ui.grid.FieldColumnFactory.defaultRenderer(b),{sortable:false})}})})();(function(){var a=window.Ext4||window.Ext;var b=function(g,e){var d=g.text;var c=e.text;if(d>c){return 1}if(d<c){return -1}return 0};a.define("Rally.ui.grid.ColumnBuilder",{requires:["Ext.Array","Ext.util.Format","Rally.ui.grid.FieldColumnFactory"],constructor:function(){this.defaultColumns=[];this.autoAddAllModelFieldsAsColumns=true},withDefaultColumns:function(c){if(a.isArray(c)){this.defaultColumns=this.defaultColumns.concat(c)}return this},withSortableColumns:function(c){this.sortable=c;return this},shouldAutoAddAllModelFieldsAsColumns:function(c){this.autoAddAllModelFieldsAsColumns=c;return this},build:function(d){var e=a.Array.map(this.defaultColumns,function(g){if(a.isString(g)){return Rally.ui.grid.FieldColumnFactory.getColumnConfigFromField(d.getField(g),this.sortable)}return g},this);if(this.autoAddAllModelFieldsAsColumns){var c=this._buildModelColumns(d,this.defaultColumns,e);e=e.concat(c)}this._removeHiddenColumns(e);return this._stripTagsFromColumnText(e)},_removeHiddenColumns:function(d){for(var c=d.length-1;c>0;c--){var e=d[c];if(e.modelField&&e.modelField.hidden){a.Array.erase(d,c,1)}}}
不确定我可以提供哪些其他指导来帮助找到此问题。
答案 0 :(得分:2)
代码有点大,所以在发布之前我开始做一些分歧和征服,我在代码中找到了原因,尽管可能不是根本原因:
在我的columnCfgs中添加rallygrid时,我在最后一个条目上有一个尾随','。
真正令人讨厌的事情是它适用于所有浏览器本地,但只是在Rally上的IE中失败并且有一个超级模糊的错误,因此很难追逐......甚至我的JavaScript语法荧光笔也没有警告我......
我怀疑这实际上是Rally或EXT-JS代码中的一个问题,其中IE真的很挑剔......