3

Backbone.Marionette の要求応答フレームワークを使用して、コレクション内のデータを取得し、それを要求する要求オブジェクトに応答しますが、明らかに、コレクションが取り込まれるのを待ちません。そして、ここに私のコードがあります:

これは、データを要求している場所です。

// Module: Timeline, ListController
var employees = App.request('employee:timeline');

ここで、ハンドラーを設定します。

// Entities Module
App.reqres.setHandler('employee:timeline', function() {
    return API.getEmployeesForTimeline();
});

ここに私のAPIの機能があります:

getEmployeesForTimeline: function() {
    var employees = new Entities.EmployeeCollection();

    employees.fetch({
        success: function(employees) {
            returnEmployees(employees);
        }
    });

    function returnEmployees(employees) {
        // doing some things with employees collection
        return leaves;
    }
}
4

1 に答える 1

8

promise を使用して結果を返します。

getEmployeesForTimeline: function() {
    var employees = new Entities.EmployeeCollection();
    var deferred = $.Deferred();
    employees.fetch({
        success: deferred.resolve
    });

    return deferred.promise();
}

// Entities Module: UNCHANGED
App.reqres.setHandler('employee:timeline', function() {
    return API.getEmployeesForTimeline();
});

//request data
var promise = App.request('employee:timeline');
promise.done(function(employees){
    //use employees
});
于 2013-08-27T14:46:56.160 に答える