所有 我正在为Rally开发一个功能打印应用程序,因此我们可以为我们的模拟投资组合看板板生成卡片。我想使用2.0 SDK构建这台打印机。我将original Card print代码作为我的起点。我的Java脚本生锈了,我可以帮助我们克服这个障碍。
该应用的目标
我正在使用商店从Rally中提取数据。这是按预期工作的。 我有问题将商店结果传递给数组以创建HTML卡。数据正在进入_displayFeatureCard:函数。我可以在控制台中看到它打印出来。
这是我到目前为止所拥有的。
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function () {
console.log("App Launched")
// App调用投资组合功能数据存储 this._getfeaturedatastore();
},
//Get the portfolio feature data from Rally
_getfeaturedatastore: function(){
var getfeaturedata = Ext.create('Rally.data.wsapi.Store', {
model: 'PortfolioItem/Feature',
autoLoad: true,
//为商店创建Fillter 过滤器:[ { property:' State.Name',
value: 'Story Definition',
}
],
listeners: {
load: function(getfeaturedatastore, getfeaturedatadata, success) {
console.log("Got Feature Data Woot",getfeaturedatastore, getfeaturedatadata, success)
this._displayFeatureCard(getfeaturedata);
},
scope: this
},
fetch: ['State', 'Name', 'Description', 'Owner', 'Parent','PlannedStartDate','FormattedID','Tags']
}); },
_displayFeatureCard: function(getfeaturedata){
var MAX_NAME_LEN = 115;
var name,i,theMarkup,data, description, owner, parent, plannedstartdate, formattedid, data;
data = getfeaturedata;
console.log("Woot made it to the Card", data)
for (i = 0; i < data; i++) {
name = data[i].Name;
owner = data[i].Owner;
parent = data[i].Parent;
description = data[i].Description;
plannedstartdate=data[i].PlannedStartDate;
formattedid=data[i].FormattedID;
theMarkup = this.createMarkup(i, data, name, description, owner, parent, plannedstartdate, formattedid);
dojo.byId("cards").innerHTML += theMarkup;
}
},
答案 0 :(得分:1)
检查您的代码,您的应用构造函数正在使用Rally的AppSDK 2.0(基于ExtJS),而您的_displayFeatureCard方法正在引用dojo,这是传统的AppSDK1,不建议在AppSDK 2.0中使用。
有一个用于打印功能卡的RallyCommunity应用程序(PrintStoryCards的略微修改版本)。它可以在这里找到:
https://github.com/RallyCommunity/feature-print-cards
它也基于旧版和已弃用的AppSDK1。但它仍然有效,您可能会发现它符合您的要求。