gpt4 book ai didi

php - 我如何确定所有集合都已填充?

转载 作者:行者123 更新时间:2023-11-30 05:47:55 25 4
gpt4 key购买 nike

在呈现任何 View 之前,我需要填充我应用程序的所有集合。然而,问题是,有时我必须刷新页面几次才能看到所有内容都已填充。

例如,当我知道数据库中有房间时,有时房间集合是完全空的。在这种情况下,服务器响应为空。

这是一个精简的实现:

(function() {
window.rooms = new App.Collections.Rooms();

$.when(rooms.fetch()).done(function() {
window.router = new App.Router;
Backbone.history.start();
});
}());

这是从服务器返回房间的代码:

public function get_index() {
$rooms = Room::where('id_hostel', '=', Session::get('id_hostel'))->get();
$response = array();

foreach($rooms as $room) {
$response[] = $room->attributes;
}

return json_encode($response);
}

其实我不知道错误是在客户端还是在我编写的Laravel RESTful服务中。我该如何解决这个间歇性问题?

最佳答案

如果您引用 - Collection fetch,有几种方法可以处理此问题

Sidney 已经提到了第一种方法,即使用 fetchsuccess 回调。

第二种方法是使用 events,我认为这种方法更好,因为您可以更轻松地解耦代码并提高可读性。

var rooms = window.rooms = new App.Collections.Rooms();
rooms.fetch();
...
rooms.on('sync', someFunction);

var rooms = window.rooms = new App.Collections.Rooms();
rooms.fetch({reset: true});
...
rooms.on('reset', someFunction);


someFunction () {
window.router = new App.Router;
Backbone.history.start();
}

不过我必须说这不是做事的首选“主干方式”。我强烈建议您阅读 Backbone Patterns

关于php - 我如何确定所有集合都已填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764079/

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