2

所以我想允许用户有条件地在我构建的 Cardboard 应用程序中打开/关闭列。我有两个问题。我尝试在配置中使用 'columns' 属性,但我似乎无法找到允许基于属性显示所有列(选中所有复选框)的默认值,即。如果我根本不在配置对象中包含“列”(尝试为 null,[] 但显示 NO 列),则默认行为。

所以这就是我的第二个问题,如果没有默认值,是否有一种简单的方法可以只更改配置对象中的该值,或者我是否必须将整个变量封装在“if-else”语句中?最后,如果我必须手动构建字符串,我需要解析我们在投资组合对象上拥有的现有自定义属性(下拉列表)的值。我似乎无法正确理解 rally.forEach 循环语法。有人有一个简单的例子吗?谢谢 Dax - Autodesk 我在 Rally 的在线 SDK 中找到了一个示例,我可以对其进行修改以回答第二部分(这假定投资组合项目上有一个名为“ADSK 看板状态”的自定义属性并将值输出到控制台):

         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);
4

3 回答 3

1

我认为使用上面的查询创建并传递给示例 showAttributeValues 回调的“结果”集合动态构建配置的代码看起来很像动态构建一组表列的示例,如下所示:

Rally App SDK:有没有办法为表格设置可变列?

我正在设想如下内容:

            // 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...
于 2012-04-24T14:50:55.873 回答
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'
});
于 2012-04-23T20:03:13.310 回答
0

听起来你正在构建一个整洁的电路板。您必须为板提供每次显示的列列表(销毁旧板并创建新板)。

示例配置:

{
    attribute: 'ScheduleState'
    columns: [
        'In-Progress',
        'Completed'
    ]
}
于 2012-04-23T20:15:56.410 回答