2012-04-20 3 views
2

Поэтому я хочу разрешить пользователю условно включать/отключать столбцы в приложении Картон, которое я построил. У меня две проблемы. Я попытался использовать атрибут «columns» в конфиге, но я не могу найти значение по умолчанию для него, которое позволит отображать ВСЕ столбцы (все флажки отмечены) на основе атрибута, т.е. поведение по умолчанию, если я вообще не включаю «столбцы» в объект конфигурации (проверено значение null, [], но это показывает столбцы NO).Условно отрегулируйте видимые столбцы в Rally Cardboard UI

Таким образом, чтобы получить вторую проблему, если нет значения по умолчанию, существует простой способ изменить это значение только в объекте конфигурации или мне нужно инкапсулировать всю переменную в операторы if-else? Наконец, если мне нужно вручную создать строку, мне нужно проанализировать значения существующего пользовательского атрибута (списка), который мы имеем на объекте портфолио. Кажется, я не могу получить правильность синтаксиса rally.forEach. Есть ли у кого-нибудь простой пример? Спасибо Dax - Autodesk Я нашел пример в онлайн-SDK от Rally, который я мог бы изменить, чтобы ответить на вторую часть (это предполагает пользовательский атрибут в элементе Portfolio под названием «ADSK Kanban State» и выводит значения на консоль):

  var showAttributeValues = function(results) { 
     for (var property in results) { 
      for (var i=0 ; i < results[property].length ; i++) { 
       console.log("Attribute Value : " + results[property][i]); 
      } 
     } 
    }; 

    var queryConfig = []; 
    queryConfig[0] = { 
      type: 'Portfolio Item', 
      key : 'eKanbanState', 
      attribute: 'ADSK Kanban State' 
    }; 
    rallyDataSource.findAll(queryConfig, showAttributeValues); 

ответ

1

rally.forEach каждый цикл по каждому ключу в первом аргументе и выполняет функцию, переданную как второй аргумент каждый раз. Он будет работать либо с объектами, либо с массивами.

Для массива:

var array = [1]; 
rally.forEach(array, function(value, i) { 
    //value = 1 
    //i = 0 
}); 

Для объекта:

var obj = { 
    foo: 'bar' 
}; 
rally.forEach(obj, function(value, key) { 
    //value = 'bar' 
    //key = 'foo' 
}); 
+0

Итак, я думаю, что я немного замедлился на этом, я буду более ясен. У нас есть настраиваемый атрибут для элементов портфеля, именуемых «ADSKKanbanState». Это выпадающий список строк. Я хочу перебрать этот атрибут для создания массива строк для управления, а затем перейти к параметру «столбцы» объекта конфигурации картона. Как я могу это кодировать? – Dax

+0

См. Выше. Я добавил код, чтобы показать всем, кому нужен пример для второй части вопроса, по-прежнему нужна помощь по первой части. – Dax

0

Похоже, вы строите аккуратную плату. Вам нужно будет предоставить доске список столбцов, которые будут отображаться каждый раз (уничтожение старой доски и создание новой).

Пример конфигурации:

{ 
    attribute: 'ScheduleState' 
    columns: [ 
     'In-Progress', 
     'Completed' 
    ] 
} 
+0

У меня есть работающий, когда вы описываете (Create/Destroy board каждый раз), что я хочу сделать, это передать переменную в параметр columns, который я буду строить динамически. Я работаю до тех пор, пока я явно укажу ВСЕ столбцы, которые я хочу отобразить. Я надеялся, что есть значение по умолчанию, которое я мог бы передать, в основном игнорируя параметр столбцов, как если бы он не был в объекте конфигурации. Подобно прохождению пустой строки "" для параметра запроса, который затем игнорирует объект Картон. – Dax

1

Я думаю, что код для динамического создания конфигурации с использованием «результатов» коллекция, созданная по Вашему запросу выше и передается на ваш образец showAttributeValues ​​обратного вызова, будет выглядеть очень похоже пример динамического построения набора столбцов таблицы, как показано на:

Rally App SDK: Is there a way to have variable columns for table?

Я что-то вроде следующего: предполагая

  // Dynamically build column config array for cardboard config 

      var columnsArray = new Array(); 

      for (var property in results) { 
       for (var i=0 ; i < results[property].length ; i++) { 
        columnsArray.push("'" + results[property][i] + "'"); 
       } 
      } 

      var cardboardConfig = { 
      { 
       attribute: 'eKanbanState', 
       columns: columnsArray, 
       // .. rest of config here 
      } 

      // .. (re)-construct cardboard... 

 Смежные вопросы

  • Нет связанных вопросов^_^