我想检索拉力缺陷的所有可用状态值。
以下代码对功能很有用:
this.states = [];
this.stateStore = Ext.create('Ext.data.Store', {
fields: ['_ref', 'name']
});
Ext.create('Rally.data.wsapi.Store', {
model: 'State',
autoLoad: true,
filters: [
{
property: 'Enabled',
operation: '=',
value: true
},
{
property: 'TypeDef.Name',
operation: '=',
value: 'Feature'
}
],
listeners: {
load: function (store, data) {
for (var i = 0; i < data.length; i++) {
this.stateStore.add({ '_ref': data[i].data._ref, 'name': data[i].data.Name });
}
this.statesLoaded = true;
this._initialLoad();
},
scope: this
}
});
通过这种方法,我们加载了要素的所有可用状态值。但是,当我将“功能” TypeDef.Name过滤器更改为“缺陷”时,尽管定义了许多活动的缺陷状态,但我什么也没得到。
有谁知道为什么会这样以及如何获取缺陷的状态值?
也许缺陷使用其他状态,而不是功能,suer故事等?
最佳答案
在WS API中,有一个完整的State对象,它表示PortfolioItems的State。它不同于诸如Defect或UserStory之类的工件的State或ScheduleState,它们只是下拉字段中的字符串值。没有诸如State.Name的缺陷之类的东西。
使用promise,可能看起来像这样:
launch: function(){
this._getModel().then({
success: this._getAllowedValues,
scope:this
}).then({//...})
},
_getModel:function(){
return Rally.data.ModelFactory.getModel({
type:'Defect'
});
},
_getAllowedValues:function(model){
var deferred = Ext.create('Deft.Deferred');
var allowedStateValues = [];
model.getField('State').getAllowedValueStore().load({
callback: function(records,operation,success){
Ext.Array.each(records,function(allowedValue){
allowedStateValues.push(allowedValue.get('StringValue'));
});
if(success){
deferred.resolve(allowedStateValues);
}
else{
deferred.reject();
}
}
}) ;
return deferred.promise;
},//...
请参阅this example,该值检索缺陷的优先级和严重性的允许值。由于这些值允许使用空值,因此在此应用示例中将删除空值,但State没有空值,因此您可以跳过该步骤。
关于javascript - Rally SDK:检索缺陷的所有可用状态值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27275368/