2013-10-29 149 views
1

我正在使用Rally SDK 2.0rc1中的Wsapi數據存儲查詢來獲取選定項目下的所有項目(即整個子項目分支)。是否可以使用查詢來遞歸獲取所有子項目名稱?或者我將不得不編寫一個單獨的遞歸函數來獲取這些信息?如果需要單獨的遞歸函數,我應該如何將數據填充到例如組合框中?我是否需要創建一個單獨的數據存儲並將遞歸函數中的數據推入其中,然後將Combobox的存儲連接到它?Wsapi數據存儲查詢

另外,如何在Rally SDK 2.0rc1中獲取「當前工作區名稱」(我正在工作的工作區,在拉力賽中)?

回答

2

使用'context'配置選項來指定啓動哪個項目級別並添加'projectScopeDown'以確保返回子項目。這看起來像這樣:

Ext.create('Rally.data.WsapiDataStore', { 
    limit : Infinity, 
    model : 'Project',  
    fetch : ['Name','ObjectID'], 
    context : { 
     project : '/project/' + PROJECT_OID, 
     projectScopeDown : true 
    } 
}).load({ 
    callback: function(store) { 
     //Use project store data here 
    } 
}); 

要獲取您當前的上下文數據,請使用:this.getContext()

var workspace = this.getContext().getWorkspace(); 
var project = this.getContext().getProject(); 
+0

這是我當前的代碼(組合框返回0結果不正確),http://pastebin.ubuntu.com/6327076/。我在集會裏試過你的代碼,但它並沒有縮小到我目前選擇的項目。我也嘗試編寫'context:this.getContext()',但這也行不通。 –

+0

@nickm,我也試過用這個,http://pastebin.ubuntu.com/6330138/。這一次,我得到了所有的項目和工作空間,好像上下文在這種情況下沒有做任何事情。 –

0

如果你嘗試用CONSOLE.LOG的this.getContext()。getWorkspace()和this.getContext()暴露。getProject()你可以更好地瞭解什麼是返回,需要什麼。在我的一個案例中,我不得不使用this.getContext()。getProject()。項目。 使用控制檯調試語句是根據其使用情況確定需要的最佳方法。