我是BackBone的新手,并根据网络上的模板构建我的应用。我首先从file.json加载我的数据,如此......
livestock.groups = Backbone.Collection.extend({
model: livestock.Activity,
url: "groups.json"
});
然后我有几行代码将集合加载到HTML和设置按钮功能。接近结束时,我有一条更新扩展集合的行...
function addToList(activity) {
livestock.groups.add({id: 6, type: activity, comments: 'Wow...that was easy.'});
}
这适用于集合的HTML版本,但我想在addToList函数中添加一行来更新我的.json文件。怎么办呢?
答案 0 :(得分:1)
这实际上是不可能的。 Backbone旨在与RESTful Web服务进行交互。当你给它一个像你所做的JSON文件的URL时,它会发送一个GET
请求,它可以正常工作。它不知道它是否称为Web服务。但是,当您要将更新发送到集合时,它会生成HTTP POST
请求。但是,对静态文件提交POST
请求没有任何帮助。 Apache或您用于托管JSON文件的任何内容都可能会忽略它并再次提供静态文件。
然而,真正的问题与Backbone本身无关。问题是您无法通过javascript编辑远程服务器上的文件。你需要一些Web服务,使用PHP或Ruby之类的东西来接收来自Backbone的请求并更新服务器硬盘上的文件。
如果您现在正在本地计算机上进行开发,那么由于其他原因,这将无法正常工作。出于安全原因,您的浏览器不允许使用javascript修改硬盘上的本地文件,即使它们与您的html和javascript位于同一文件夹中。
希望这有帮助。
编辑:根据评论,在此处添加链接到Backbone到LocalStorage和IndexedDB的几个示例适配器: