2013-08-01 1 views

답변

0

출시 WsapiDataStore에서 가져온 필드 사이에 있어야합니다 : 릴리스에 할당되지 않은 특징을 고려하여,

fetch: ['FormattedID','Name','UserStories','Release'] 

그러나 다음 Rally.data.custom.Store에서,이 조건이 사용됩니다 :

Ext.define('CustomApp', { 
    extend: 'Rally.app.App', 
    componentCls: 'app', 

    launch: function() { 
    Ext.create('Rally.data.WsapiDataStore', { 
     model: 'PortfolioItem/Feature', 
     fetch: ['FormattedID','Name','UserStories','Release'], 
     pageSize: 100, 
     autoLoad: true, 
     listeners: { 
     load: this._onDataLoaded, 
     scope: this 
     } 
    }); 
    }, 

    _createGrid: function(features) { 
    this.add({ 
     xtype: 'rallygrid', 
     store: Ext.create('Rally.data.custom.Store', { 
     data: features, 
     pageSize: 100 
     }), 

     columnCfgs: [ 
     { 
      text: 'Formatted ID', dataIndex: 'FormattedID', xtype: 'templatecolumn', 
      tpl: Ext.create('Rally.ui.renderer.template.FormattedIDTemplate') 
     }, 
     { 
      text: 'Name', dataIndex: 'Name' 
     }, 
     { 
      text: 'Release', dataIndex: 'Release' 
     }, 
     { 
      text: 'Story Count', dataIndex: 'StoryCount' 
     }, 
     { 
      text: 'User Stories', dataIndex: 'UserStories', 
      renderer: function(value) { 
      var html = []; 
      Ext.Array.each(value, function(userstory){ 
       html.push('<a href="' + Rally.nav.Manager.getDetailUrl(userstory) + '">' + userstory.FormattedID + '</a>') 
      }); 
      return html.join(', '); 
      } 
     } 
     ] 

    }); 
    }, 
    _onDataLoaded: function(store, data){ 
     var features = []; 
     var pendingstories = data.length; 
     //debugger; 
     Ext.Array.each(data, function(feature) { 
       var release = feature.get('Release'); 
       var f = { 
       FormattedID: feature.get('FormattedID'), 
       Name: feature.get('Name'), 
       Release: (release && release.Name) || 'None',        
       _ref: feature.get("_ref"), 
       StoryCount: feature.get('UserStories').Count, 
       UserStories: [] 
       }; 

       var stories = feature.getCollection('UserStories'); 
       stories.load({ 
       fetch: ['FormattedID'], 
       callback: function(records, operation, success){ 
        Ext.Array.each(records, function(story){ 
        var number = story.get('DirectChildrenCount'); 
        if (number == 0) { 
         f.UserStories.push({_ref: story.get('_ref'), 
          FormattedID: story.get('FormattedID') 
          });} 
        }, this); 

        --pendingstories; 
        if (pendingstories === 0) { 
        this._createGrid(features); 
        } 
       }, 
       scope: this 
       }); 
       features.push(f); 
     }, this); 
    }    
}); 
: 여기
Release: (release && release.Name) || 'None' 

코드입니다
관련 문제