3

私はFuelUXが初めてなので、提供された例に基づいてこれを機能させようとしていました:

require(['jquery','data.js', 'datasource.js', 'fuelux/all'], function ($, sampleData, StaticDataSource) {

    var dataSource = new StaticDataSource({
            columns: [{property:"memberid",label:"LidId",sortable:true},{property:"name",label:"Naam",sortable:true},{property:"age",label:"Leeftijd",sortable:true}],
            data: sampleData.memberdata,
            delay: 250
        });

        $('#MyGrid').datagrid({
            dataSource: dataSource,
            stretchHeight: true
        });

    });
});

これをデータとして:

(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        define(factory);
    } else {
        root.sampleData = factory();
    }
}(this, function () {
    return {
        "memberdata": [{
            "memberid": 103,
            "name": "Laurens  Natzijl",
            "age": "25"
        }, {
            "memberid": 104,
            "name": "Sandra Snoek",
            "age": "25"
        }, {
            "memberid": 105,
            "name": "Jacob Kort",
            "age": "25"
        }, {
            "memberid": 106,
            "name": "Erik  Blokker",
            "age": "25"
        }, {
            "memberid": 107,
            "name": "Jacco  Ruigewaard",
            "age":"25"
        },{  /* etc */ }]
    }
}));

コンソール エラーも、インクルードの欠落もありません。すべてが正常に機能します - ロードしているようにさえ見えます。データグリッドには「0アイテム」以外は何も表示されません。

助言がありますか?私は例が提供したすべてをやったと思います...

EDIT:14:33(アムステルダム)これをコンソールに入れると違いがあるようです:

マイページ:

require(['jquery','data.js','datasource.js', 'fuelux/all'], function ($, sampleData, StaticDataSource) {
    var dataSource = new StaticDataSource({
            columns: [{property:"memberid",label:"LidId",sortable:true},{property:"name",label:"Naam",sortable:true},{property:"age",label:"Leeftijd",sortable:true}],
            data: sampleData.memberdata,
            delay: 250
        });
    console.debug(dataSource);
});

コンソールの 1 行目:

function localRequire(deps, callback, errback) { /* etc */ }

コンソールの 2 行目:

StaticDataSource {_formatter: undefined, _columns: Array[3], _delay: 250, _data: Array[25], columns: function…}

FuelUX の例:

require(['jquery', 'sample/data', 'sample/datasource', 'sample/datasourceTree', 'fuelux/all'], function ($, sampleData, StaticDataSource, DataSourceTree) {
    var dataSource = new StaticDataSource({
        columns: [{property: 'toponymName',label: 'Name',sortable: true}, {property: 'countrycode',label: 'Country',sortable: true}, {property: 'population',label: 'Population',sortable: true}, {property: 'fcodeName',label: 'Type',sortable: true}],
        data: sampleData.geonames,
        delay: 250
    });
    console.debug(dataSource);
});

コンソールの 1 行目:

StaticDataSource {_formatter: undefined, _columns: Array[4], _delay: 250, _data: Array[146], columns: function…}

コンソールの 2 行目:

function (deps, callback, errback, relMap) { /* etc */ }

多分これはあなたが私を助けるのを助けるでしょう:)

4

3 に答える 3

7

有限の回答を提供するために必要なすべての情報が表示されませんでした。本当の魔法は datasource.js ファイルです (これは提供していません)。

必要なすべての要素を示す簡単な方法は、使用中のデータと必要なすべての要素を示す JSFiddle をまとめることだと思いました。

データを含む Fuel UX Datagrid サンプルの JSFiddle へのリンク

ツールの作成者である Adam Alexander も、dataGrid DailyJS Fuel UX DataGridを使用した貴重な例を書いています。

// DataSource Constructor
var StaticDataSource = function( options ) {
this._columns = options.columns;
this._formatter = options.formatter;
this._data = options.data;
this._delay = options.delay;
};

StaticDataSource.prototype = {
columns: function() {
    return this._columns
},
data: function( options, callback ) {
    var self = this;

    var data = $.extend(true, [], self._data);

    // SEARCHING
    if (options.search) {
        data = _.filter(data, function (item) {
            for (var prop in item) {
                if (!item.hasOwnProperty(prop)) continue;
                if (~item[prop].toString().toLowerCase().indexOf(options.search.toLowerCase())) return true;
            }
            return false;
        });
    }

    var count = data.length;

    // SORTING
    if (options.sortProperty) {
        data = _.sortBy(data, options.sortProperty);
        if (options.sortDirection === 'desc') data.reverse();
    }

    // PAGING
    var startIndex = options.pageIndex * options.pageSize;
    var endIndex = startIndex + options.pageSize;
    var end = (endIndex > count) ? count : endIndex;
    var pages = Math.ceil(count / options.pageSize);
    var page = options.pageIndex + 1;
    var start = startIndex + 1;

    data = data.slice(startIndex, endIndex);

    if (self._formatter) self._formatter(data);

    callback({ data: data, start: 0, end: 0, count: 0, pages: 0, page: 0 });
}
};

マークアップと「datasource.js」ファイルの内容を提供していただければ、さらにお役に立てるかもしれません。

デモンストレーションは、あなたが理解していない可能性のある部分について多くの情報を提供すると思います.

于 2013-05-08T14:03:56.170 に答える