我正在修改IterationSummary app from the 2.0RC3 SDK,并为其添加更多迭代信息。出于某种原因,虽然我能够从迭代对象中查询其他字段,但我无法检索迭代的“主题”。从样本开始,我只需添加以下行@ 192
{
cls: 'theme',
html: iteration.get('Theme')
},
我可以获得'Name'但是我无法获得'Theme'值,即使它在迭代中明确设置,我使用REST API验证该值以查询相同的迭代。查询“姓名”等其他字段效果很好。知道为什么'主题'没有被退回吗?
答案 0 :(得分:0)
你取得主题' ?
您可能会看到一个一般示例,它构建一个迭代网格,该网格包含一个版本(在releasecombobox中选择),只要迭代中输入的主题位于this github repo,就会填充主题列。
此示例与IterationSummary应用程序不同,因为在我的示例中,我为Iteration对象显式创建了Rally.data.wsapi.Store并获取了主题。
自定义IterationSummary应用程序仍然需要显式获取主题字段,但您是正确的,从IterationSummary应用程序中获取其他字段的方式并不明显,例如迭代状态。该应用程序中的迭代对象从this.getContext().getTimeboxScope().getRecord()
返回,如果您在控制台中打印出该对象,则主题将为空。 this.getContext().getTimeboxScope().getRecord()
上存在的字段数量有限,无法根据性能原因进行自定义。
为了修改此应用以显示主题,必须访问迭代模型并显式获取主题。以下是我修改应用程序的步骤:
添加了getTheme功能:
getTheme: function(){
var iteration = this.getContext().getTimeboxScope().getRecord();
return iteration.self.load(iteration.getId(), {
fetch: ['Theme']
});
}
在rc3中,每当我们有记录时,.self
都会给出其模型,因此无需手动执行此操作:
Rally.data.ModelFactory.getModel({
type: 'Iteration',
//...
注意fetch: ['Theme']
接下来,在_addContent
方法getTheme()
内部调用
return Deft.Promise.all([this.getTheme(), this.calculateTimeboxInfo()]).then({
success: function(results) {
var theme = results[0].get('Theme');
然后最后将主题变量的值传递给:
{
cls: 'theme',
html: theme
}
完整代码可在this github repo中找到。