2

そのため、作成した Cardboard アプリでユーザーが列を条件付きでオン/オフできるようにしたいと考えています。2 つの問題があります。構成で「列」属性を使用してみましたが、属性に基づいてすべての列を表示できるようにする(すべてのチェックボックスをオンにする)デフォルト値が見つからないようです。構成オブジェクトに「列」をまったく含めない場合のデフォルトの動作(null、[]を試しましたが、列は表示されません)。

それが私の2番目の問題になります。デフォルト値がない場合、構成オブジェクトでその値のみを変更する簡単な方法がありますか、それとも「if-else」ステートメントで変数全体をカプセル化する必要がありますか? 最後に、文字列を手動で作成する必要がある場合は、ポートフォリオ オブジェクトにある既存のカスタム属性 (ドロップ リスト) の値を解析する必要があります。rally.forEach ループ構文を正しく理解できないようです。誰かが簡単な例を持っていますか? ありがとう ダックス - オートデスク Rally のオンライン SDK で、2 番目の部分に答えるために変更できる例を見つけました (これは、「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);
4

3 に答える 3

1

rally.forEachは、最初の引数の各キーをループし、毎回2番目の引数として渡された関数を実行します。オブジェクトまたは配列のいずれかで動作します。

アレイの場合:

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 に答える
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 に答える
0

きちんとしたボードを構築しているようですね。毎回表示する列のリストをボードに提供する必要があります(古いボードを破棄して新しいボードを作成します)。

設定例:

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