我想检索拉力缺陷的所有可用状态值。
以下代码对功能很有用:

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,该值检索缺陷的优先​​级和严重性的允许值。由于这些值允许使用空值,因此在此应用示例中将删除空值,但S​​tate没有空值,因此您可以跳过该步骤。

关于javascript - Rally SDK:检索缺陷的所有可用状态值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27275368/

10-10 00:29