Javascript 主干:预取集合
我有一个主干应用程序,它在加载时需要从四个不同的集合(Rails-->JSON后端)获取数据 这对服务器来说是四次点击,我猜还有更好的方法 我首先尝试将查询结果的Rails to_json()传递到Rails视图中的路由器初始化中,例如:Javascript 主干:预取集合,javascript,json,backbone.js,Javascript,Json,Backbone.js,我有一个主干应用程序,它在加载时需要从四个不同的集合(Rails-->JSON后端)获取数据 这对服务器来说是四次点击,我猜还有更好的方法 我首先尝试将查询结果的Rails to_json()传递到Rails视图中的路由器初始化中,例如: <script type="text/javascript"> $(function() { window.router = new Backbonedemo.Routers.CalendarsRouter({calendars:
<script type="text/javascript">
$(function() {
window.router = new Backbonedemo.Routers.CalendarsRouter({calendars: [], tasks: <%= @tasks %>});
Backbone.history.start();
});
</script>
$(函数(){
window.router=new Backbonedemo.Routers.CalendarsRouter({calendars:[],tasks:});
Backbone.history.start();
});
但这并没有带来快乐
那么,在启动时运行等效的fetch()的正确方法是什么,而不必为我要收集的每个集合点击JSON?我不知道Rails,但请参阅:
Accounts.reset();
项目。重置(正确)%>);
通常,我认为您需要创建集合对象,然后使用内联JSON数据重置它们。我不知道Rails,但请参见:
Accounts.reset();
项目。重置(正确)%>);
通常,我认为您需要创建集合对象,然后使用内嵌JSON数据重置它们。查看gem。它允许您定制json响应,定制程度远远高于常规的to_json
所允许的程度
这里有一种基本的方法来设置一个项目,在这个项目中,您需要提前交付大量JSON:
首先,将控制器设置为在页面加载时提取数据,例如,PElocalhost:3000/home
将在home controller索引中查找:
class HomeController < ApplicationController
def index
@user = current_user
render 'user.json' # this line is not actually required most of the time when using backbone and proper ajax/json requests
end
end
这是一个相对花哨的rabl,它将在一个json对象中提供一组json,包括一组相关的记录
在加载主干的html视图中,需要将控制器的对象传递给部分:
# views/home/index.html.erb
<script type='text/javascript'>
$(function() {
window.router = new Backbonedemo.Routers.CalendarsRouter(<%= render('user.json.rabl', user: @user).html_safe -%>);
Backbone.history.start();
});
</script>
#views/home/index.html.erb
$(函数(){
window.router=new Backbonedemo.Routers.CalendarsRouter();
Backbone.history.start();
});
重述:
html.erb
视图(启动主干网的视图)rabl
模板to_json
所允许的程度
这里有一种基本的方法来设置一个项目,在这个项目中,您需要提前交付大量JSON:
首先,将控制器设置为在页面加载时提取数据,例如,PElocalhost:3000/home
将在home controller索引中查找:
class HomeController < ApplicationController
def index
@user = current_user
render 'user.json' # this line is not actually required most of the time when using backbone and proper ajax/json requests
end
end
这是一个相对花哨的rabl,它将在一个json对象中提供一组json,包括一组相关的记录
在加载主干的html视图中,需要将控制器的对象传递给部分:
# views/home/index.html.erb
<script type='text/javascript'>
$(function() {
window.router = new Backbonedemo.Routers.CalendarsRouter(<%= render('user.json.rabl', user: @user).html_safe -%>);
Backbone.history.start();
});
</script>
#views/home/index.html.erb
$(函数(){
window.router=new Backbonedemo.Routers.CalendarsRouter();
Backbone.history.start();
});
重述:
html.erb
视图(启动主干网的视图)rabl
模板