过去几天,我一直在使用backbone.js,编辑Todos示例并编写自己的版本。
现在我正在考虑创建一个具有多个路由的控制器,但是在遵循Todos示例之后,我发现调用Todos.fetch()会导致重新呈现这些项。我觉得这叫刷新事件?
backbone.js文档说:
注意:在页面加载时,不应该使用fetch填充集合--加载时所需的所有模型都应该已被引导到位。fetch用于延迟加载接口模型,这些接口不是立即需要的:例如,文档中的便笺集合可能会被切换、打开和关闭。
那么,加载数据的最佳方式是什么?我可以使用ajax调用来获取数据并在实例化主控制器时传递它吗?如果我要更改页面,并显示一个新的视图,那该怎么办?我可以直接调用fetch()函数吗?
发布于 2011-03-31 17:22:03
这里有一些文档来提醒您,您应该在初始页面加载时加载所有数据,并将fetch用于所有后续加载。
您可以拥有这样的代码:
MyCollection = new Collection({some json data});比加载页面要快得多,然后是几个加载数据的请求。
发布于 2011-03-31 02:16:59
我对文档的措辞也有点困惑,但是fetch是一种告诉您的Collection或Model通过您自己的同步函数或Backbone.sync获取数据的方法,后者已经在内部使用ajax,可以将结果传递给您的成功或错误函数。
就您提到的Todos示例而言,Collection就是这样工作的。它更新模型,然后触发‘刷新’事件,这可能迫使您的视图被重新呈现,就像您说的。
我强烈建议查看Backbone.js代码。它非常有效地记录了事件和方法调用的流程,因此很容易掌握。
https://stackoverflow.com/questions/5494306
复制相似问题