我正在使用Rally App我正在使用Store从Portfolio / Feature Modle中提取数据。 这是按预期工作的。我想把lisener的回归转换成arry 我面临的问题是数组只是重新运行Object,我需要Object Property中的数据。 数组的结果看起来像这样
[" F1870"," 25343 - 某些项目名称","",对象,对象,2015年4月27日星期一02:00:00 GMT -0400(东部夏令时)]
第一个对象值应该是John Smith。
中的约翰史密斯对象
0:" F1870"
1:" 25343 - 一些"
2:""
3:对象
_p:" 0" _ref:" blah Balh"
_refObjectName:" John Smith"
_refObjectUUID:" blah blah"
_type:
所有者[_refObjectName]我需要得到什么,我迷路了。
******编辑添加更多detials **** 商店返回的值如下所示
data:Object
FormattedID:F1223
名称:某个项目
描述:Blah blah blah
所有者:对象 _p:
_ref:
_refObjectName: John Smith
我需要数组返回
FormattedID:F1223
名称:某个项目
描述:Blah blah blah
所有者:John Smith
这是我到目前为止的代码。
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function () {
console.log("App Launched")
//App Calls the portfolio feature data store
this._getfeaturedatastore();
},
//Get the portfolio feature data from Rally
_getfeaturedatastore: function(){
var getfeaturedata = Ext.create('Rally.data.wsapi.Store', {
model: 'PortfolioItem/Feature',
autoLoad: true,
//Create Fillter for the Store
filters: [
{
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, description, owner, parent, plannedstartdate, formattedid;
var data =[];
getfeaturedata.each(function(record){
var recordArray = [
record.get("FormattedID"),
record.get("Name"),
record.get("Description"),
record.get("Owner"),
record.get("Parent"),
record.get("PlannedStartDate")
];
data.push(recordArray);
console.log(recordArray)
});

答案 0 :(得分:1)
您可以访问哪些数据以及如何访问这些数据的线索可以通过WebServices文档访问(转到右上角您的头像可访问的帮助链接)
Rally数据库中保存的任何工件都可以返回给您:字符串,数字,对象或对象集合。
对于'所有者'对于项目组合项,它是User类型的对象。对象的内容描述了所有者,而不仅仅是提供名称。因为它是一个对象,你必须做record.get(" Owner")来获取对象,然后做record.get(" Owner")。Name来获取名称主人。
FormattedID以字符串形式返回,因此您只需要执行record.get(" FormattedID")来获取文本。
答案 1 :(得分:0)
您可以使用getRange方法从商店获取所有记录,然后使用getData方法从每条记录中获取所有数据。
listeners: {
load: function(store) {
var data = _.map(store.getRange(), function(record) {
return record.getData();
});
var feature1 = data[0],
ownerName = feature1.Owner._refObjectName;
}
}
此示例还使用lodash map函数来减少必要的代码行。此时,数据将是一个普通的旧javascript对象数组,其中包含来自商店的数据。