1

私はこのコードを持っています:

    <script>
              $(window).load(function() {

         var DataSource = function (options) {
this._formatter = options.formatter;
this._columns = options.columns;
this._data = options.data;
};

DataSource.prototype = {

columns: function () {
    return this._columns;
},

data: function (options, callback) {

    var self = this;
    if (options.search) {
        callback({ data: self._data, start: start, end: end, count: count, pages: pages, page: page });
    } else if (options.data) {
        callback({ data: options.data, start: 0, end: 0, count: 0, pages: 0, page: 0 });
    } else {
        callback({ data: self._data, start: 0, end: 0, count: 0, pages: 0, page: 0 });
    }
}
};


var treeDataSource = new DataSource({
  data: [
    { name: 'Folder 1', type: 'folder', additionalParameters: { id: 'F1' },
      data: [
        { name: 'Sub Folder 1', type: 'folder', additionalParameters: { id: 'FF1' } },
        { name: 'Sub Folder 2', data: [
          {name: 'sub sub folder 1', type: 'folder', additionalParameters: { id: 'FF21' }},
            {name: 'sub sub item', type: 'item', additionalParameters: { id: 'FI2' }}
            ], type: 'folder', additionalParameters: { id: 'FF2' }},
        { name: 'Item 2 in Folder 1', type: 'item', additionalParameters: { id: 'FI2' }    }
        ]
    },
    { name: 'Folder 2', type: 'folder', additionalParameters: { id: 'F2' } },
    { name: 'Item 1', type: 'item', additionalParameters: { id: 'I1' } },
    { name: 'Item 2', type: 'item', additionalParameters: { id: 'I2' } }
  ],
        delay: 400
    });

    $('#MyTree').tree({dataSource: treeDataSource});

    $('#tree-selected-items').on('click', function () {
        console.log("selected items: ", $('#MyTree').tree('selectedItems'));
    });

    $('#MyTree').on('loaded', function (evt, data) {
        console.log('tree content loaded');
    });

    $('#MyTree').on('opened', function (evt, data) {
        console.log('sub-folder opened: ', data);
    });

    $('#MyTree').on('closed', function (evt, data) {
        console.log('sub-folder closed: ', data);
    });

    $('#MyTree').on('selected', function (evt, data) {
        console.log('item selected: ', data);
    });

              });
                </script>

http://exacttarget.github.io/fuelux/#treeを使用して います 問題は、フォルダーを開くと、例のように他のフォルダーが含まれていることです。まるで終わらない。どうすればそれを回避できますか?

ありがとう。


編集

私はこれを行い、その作業..大丈夫だと思いますか?

var cont = 0;
DataSource.prototype = {

columns: function () {
return this._columns;
},

data: function (options, callback) {

var self = this;
if (options.search) {
    callback({ data: 0 , start: 0, end: 0, count: 0, pages: 0, page: 0 });
} else if (options.data) {
    callback({ data: options.data, start: 0, end: 0, count: 0, pages: 0, page: 0 });
} else if (cont == 0) {
    callback({ data: self._data, start: 0, end: 0, count: 0, pages: 0, page: 0 });
}
        else {
            callback({ data: 0, start: 0, end: 0, count: 0, pages: 0, page: 0 });
        }
         cont = cont+1;
}

};

cont を使用すると、初めてデータをコールバックします (ツリーをロードするとき)。その後は0を返すだけです。

4

1 に答える 1

0

これの簡単な例を次に示します: http://www.bootply.com/64521

アプローチの詳細を解決してくれた @Skelly に感謝します。

于 2013-09-22T11:31:45.737 に答える