敏捷中心示例应用程序失败
Agile Central example app failing
按照 here 列出的说明进行操作后,我在 Google Chrome 的开发人员工具中收到以下错误:
sdk-debug.js:147611 Error: success callback for Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Cannot read property 'project' of undefined
at Ext.define.getFullyQualifiedName (sdk-debug.js:163998)
at Ext.define.build (sdk-debug.js:164052)
at Ext.define.buildCompositeArtifact (sdk-debug.js:164152)
at Ext.define.getModel (sdk-debug.js:196664)
at Ext.define._buildColumnsFromModel (sdk-debug.js:196985)
at Ext.define._parseColumns (sdk-debug.js:196977)
at sdk-debug.js:146417
at Ext.define.notify (sdk-debug.js:146514)
at Ext.define.register (sdk-debug.js:146481)
at Ext.define.then (sdk-debug.js:146299)
我的订阅启用了 JSONP,我已经收到要在我的控制台上读出的消息。此外,我还获得了可以成功响应请求的网络服务。这个对我来说是新的。这 "should" 行得通,但行不通。这是示例本身的错误吗?
我实现的示例的完整源代码是 here。
哇,好尴尬。这绝对是 Rally.ui.cardboard.CardBoard 组件的错误。从好的方面来说,您可以通过在示例代码中简单地包含当前上下文来解决它。
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['Defect', 'User Story'],
attribute: 'ScheduleState',
context: this.getContext(), //<-- NEW CODE HERE
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
无论如何,向所有组件提供当前上下文通常是一种好的做法,但所有组件也应该足够智能,以便在未指定时仅使用默认值。
我将提交缺陷以修复卡片板组件以正确使用默认上下文,并修复示例以显式传递上下文。感谢您报告此问题,很抱歉给您带来麻烦!
这似乎是 rallycardboard 的配置如何处理 "types:" 属性中的条目的问题。如果您有 'User Story' 或 'Defect',它将起作用。但是,如果两者都有,则不会。
这个有效:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['Defect'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);
这个有效:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['User Story'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);
这个(直接从引用的例子中复制)不起作用:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['User Story', 'Defect'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);
按照 here 列出的说明进行操作后,我在 Google Chrome 的开发人员工具中收到以下错误:
sdk-debug.js:147611 Error: success callback for Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Cannot read property 'project' of undefined
at Ext.define.getFullyQualifiedName (sdk-debug.js:163998)
at Ext.define.build (sdk-debug.js:164052)
at Ext.define.buildCompositeArtifact (sdk-debug.js:164152)
at Ext.define.getModel (sdk-debug.js:196664)
at Ext.define._buildColumnsFromModel (sdk-debug.js:196985)
at Ext.define._parseColumns (sdk-debug.js:196977)
at sdk-debug.js:146417
at Ext.define.notify (sdk-debug.js:146514)
at Ext.define.register (sdk-debug.js:146481)
at Ext.define.then (sdk-debug.js:146299)
我的订阅启用了 JSONP,我已经收到要在我的控制台上读出的消息。此外,我还获得了可以成功响应请求的网络服务。这个对我来说是新的。这 "should" 行得通,但行不通。这是示例本身的错误吗?
我实现的示例的完整源代码是 here。
哇,好尴尬。这绝对是 Rally.ui.cardboard.CardBoard 组件的错误。从好的方面来说,您可以通过在示例代码中简单地包含当前上下文来解决它。
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['Defect', 'User Story'],
attribute: 'ScheduleState',
context: this.getContext(), //<-- NEW CODE HERE
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
无论如何,向所有组件提供当前上下文通常是一种好的做法,但所有组件也应该足够智能,以便在未指定时仅使用默认值。
我将提交缺陷以修复卡片板组件以正确使用默认上下文,并修复示例以显式传递上下文。感谢您报告此问题,很抱歉给您带来麻烦!
这似乎是 rallycardboard 的配置如何处理 "types:" 属性中的条目的问题。如果您有 'User Story' 或 'Defect',它将起作用。但是,如果两者都有,则不会。
这个有效:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['Defect'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);
这个有效:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['User Story'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);
这个(直接从引用的例子中复制)不起作用:
var cardBoardConfig = {
xtype: 'rallycardboard',
types: ['User Story', 'Defect'],
attribute: 'ScheduleState',
storeConfig: {
filters: [this.iterationCombobox.getQueryFromSelected()]
}
};
this.cardBoard = this.add(cardBoardConfig);