Javascript 初始主干.js数据获取
过去几天我一直在玩backbone.js,编辑Todos示例并编写自己的版本 我现在正在考虑创建一个具有多个路由的控制器,但是在遵循Todos示例之后,我发现调用Javascript 初始主干.js数据获取,javascript,backbone.js,Javascript,Backbone.js,过去几天我一直在玩backbone.js,编辑Todos示例并编写自己的版本 我现在正在考虑创建一个具有多个路由的控制器,但是在遵循Todos示例之后,我发现调用Todos.fetch(),会导致项目重新呈现。我想这叫刷新事件 backbone.js文档说明: 请注意,不应使用fetch在页面加载时填充集合-加载时所需的所有模型都应已引导到位。fetch用于延迟加载不需要立即使用的接口的模型:例如,包含注释集合的文档可以切换为打开和关闭 那么,加载数据的最佳方式是什么?我可以在实例化主控制器时使
Todos.fetch()
,会导致项目重新呈现。我想这叫刷新事件
backbone.js文档说明:
请注意,不应使用fetch在页面加载时填充集合-加载时所需的所有模型都应已引导到位。fetch用于延迟加载不需要立即使用的接口的模型:例如,包含注释集合的文档可以切换为打开和关闭
那么,加载数据的最佳方式是什么?我可以在实例化主控制器时使用ajax调用来获取数据并传递它吗?
如果我要更改页面并显示一个新视图,该怎么办?我能调用
fetch()
函数吗?我对文档的措辞也有点困惑,但是fetch是告诉您的集合或模型进入服务器并通过您自己的同步功能或主干网获取数据的一种方式。sync已经在内部使用ajax,并且可以将结果传递给您的成功或错误功能
就您提到的Todos示例而言,这就是集合的工作原理。它更新模型,然后触发“刷新”事件,这可能会迫使您的视图重新渲染,如您所说
我强烈建议查看Backbone.js代码。它的文档记录非常有效,因此事件和方法调用的流程非常容易掌握。此文档旨在提醒您应该在初始页面加载时加载所有数据,并在后续加载时使用fetch 您可以使用如下代码:
MyCollection = new Collection({some json data});
比页面加载快得多,然后是几个加载数据的请求。我想在查看了其他代码以及Juliens answer之后,我需要在我的初始控制器中执行我自己的AJAX调用。这就是你最终要做的……你有没有遇到更好的。。。我想主干网会指定一些方法来完成这项工作,即使只是一个ajax调用……我现在也处于相同的情况。谢谢,我假设这将出现在初始页面上的控制器初始化?脚本标记中。然后您会将数据传递给控制器吗?把它放在控制器的init中不是更有意义吗?你的控制器应该在一个“.js”文件中。因此,我不建议在其中加载动态json数据(取决于页面、用户等)。在页面上创建集合,实例化一个控制器,并将集合作为参数提供。我希望这个答案更具体一点。一些json数据在这里到底意味着什么?