gpt4 book ai didi

javascript - 为什么使用定义的函数无法获取Backbone集合模型?

转载 作者:行者123 更新时间:2023-11-28 15:14:16 25 4
gpt4 key购买 nike

假设我们有一个给定集合的实例(url 在集合定义中指定),例如:

var collection = new SomeCollection(),
async = collection.fetch();

当我在 done 方法中使用匿名回调时,它工作得很好,如下例所示:

async.done(function(){
console.log('models are : ',collection.models)
});

但是当我定义一个全局函数并尝试使用它而不是之前完成的回调来组织代码时,我得到一个空的模型数组:

function done(collection){
console.log('models are : ',collection.models)
}


async.done(done(collection));

这里到底有什么问题?为什么它在获取调用之前获取集合状态?

注意:我也尝试过使用 .bind.call.apply 但它不工作!

提前谢谢您。

最佳答案

async.done 将函数作为参数。问题是你实际上将函数的结果作为参数传递给 async.done 。您需要将函数作为参数传递而不应用它。

尝试以下代码:

function done(collection){
console.log('models are : ',collection.models)
}

function success(collection){
console.log('response: ',collection)
}

var collection = new SomeCollection(),
async = collection.fetch();

// you can use success or done method
// you can bind collection argument by yourself
async.success(success);
async.done(done.bind(this, collection));

关于javascript - 为什么使用定义的函数无法获取Backbone集合模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com