3

使用拉力赛自定义网格的 SDK2.0 应用程序出现错误:

它只会在 IE(当前)中出错,如果我在本地运行它不会出错,只有当我将它安装在 Rally 中并运行它时。

我不知道是 Rally 问题还是 EXTJS 问题。

SCRIPT5007:无法获取属性“modelField”的值:对象为 null 或未定义 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)}}}

不确定我可以提供哪些其他指导来帮助找到此问题。

4

1 回答 1

2

代码有点大,所以在发布之前我开始做一些分而治之的工作,我在代码中找到了原因,尽管可能不是根本原因:

在我的 columnCfgs 添加拉力网格时,我在最后一个条目上有一个尾随的“,”。

真正令人讨厌的是这在本地的所有浏览器中都有效,但仅在 IE 上在 Rally 上失败并出现一个超级模糊的错误,所以它真的很难追下去......甚至我的 JavaScript 语法荧光笔也没有警告我......

我怀疑这实际上是 Rally 或 EXT-JS 代码中的一个问题,其中 IE 真的很挑剔......

于 2012-05-22T23:51:06.230 回答