2013-06-12 1 views
1

При использовании SnapshotStore я не смог увлажнить свойство «Имя» объектов, возвращающихся как часть моего запроса. Я получаю правильный OID для проекта, но я хотел бы отобразить имя строки проекта вместо OID. Как я могу это сделать?Как гидратировать название проекта в SnapshotStore

Это код, который я использую для запроса, но когда я добавляю свойство «Проект» в поле Гидрат, это, похоже, не имеет значения. Если я полностью прокомментирую гидратную линию, состояние и разрешение возвращаются как обезвоженные и нечитаемые (большинством людей), поэтому я знаю, что он, по крайней мере, работает.

doSearch: function(query, fields, sort, pageSize, callback){ 
    var transformStore = Ext.create('Rally.data.lookback.SnapshotStore', { 
     context: { 
      workspace: this.context.getWorkspace(), 
      project: this.context.getProject() 
     }, 
     fetch: fields, 
     find: query, 
     autoLoad: true, 
    hydrate: ["State","Resolution","Project"], 
     listeners: { 
      scope: this, 
      load: this.processSnapshots 
     } 
    }); 
}, 

«Мы не смогли найти удобный вид для следующего:„Project“: 7579240995» - это то, что я получаю при попытке включить «Проект» в гидратной поле.

Я где-то читал, что гидрат работает только с раскрывающимися меню. Это верно? И если да, как бы я мог легко показать имя проекта для каждого объекта, возвращаемого запросом?

ответ

1

К сожалению, проект не является гидратируемым полем. В общем, поля, которые могут быть гидратированы, являются полями выпадающего списка, как вы упомянули в своем вопросе.

Лучший способ сделать то, что вам нужно, это использовать Rally.data.WsapiDataStore для запроса проектов в вашей текущей рабочей области и для создания карты памяти OID для записи.

var projects = {}; 
Ext.create('Rally.data.WsapiDataStore', { 
    model: 'Project', 
    autoLoad: true, 
    limit: Infinity, 
    fetch: ['Name', 'ObjectID'], 
    context: this.getContext().getDataContext(), 
    listeners: { 
     load: function(store, records) { 
      Ext.Array.each(records, function(record) { 
       projects[record.get('ObjectID')] = record.get('Name'); 
      }); 
     } 
    } 
});