Node.js 转换主干';localStorage中的Todo列表示例
我已经看了()好几年了。代码使用本地存储,我想尝试并转换它,以便通过RESTful Web服务进行操作 假设Web服务已经存在于路由Node.js 转换主干';localStorage中的Todo列表示例,node.js,backbone.js,mongoose,express,Node.js,Backbone.js,Mongoose,Express,我已经看了()好几年了。代码使用本地存储,我想尝试并转换它,以便通过RESTful Web服务进行操作 假设Web服务已经存在于路由todos/中。我想我需要在Backbone.Model.extend中添加一个url片段,并在执行Backbone.collection.extend时删除localStorage:newstore(“TODO”)行 window.Todo = Backbone.Model.extend({ url : function() { retu
todos/
中。我想我需要在Backbone.Model.extend中添加一个url
片段,并在执行Backbone.collection.extend
时删除localStorage:newstore(“TODO”)
行
window.Todo = Backbone.Model.extend({
url : function() {
return 'todos/'+this.id;
}
// Default attributes for a todo item.
defaults: function() {
return {
done: false,
order: Todos.nextOrder()
};
},
// Toggle the `done` state of this todo item.
toggle: function() {
this.save({done: !this.get("done")});
}
});
正确的方法是什么?Url应该在集合中设置,如果您需要的Url不同于集合创建的Url,而不是模型中的声明Url
您需要删除
<script src="../backbone-localstorage.js"></script>
从index.html开始,因为它是在backbone.js之后链接的,并且有效地覆盖了backbone的sync方法以存储在localStorage中。我将保留Todos示例中的模型。在集合类中添加此属性:
window.TodoList = Backbone.Collection.extend({
...
url: '/todos',
...
}
对集合调用fetch()
,应检索Todo对象列表
如果您使用的是Rails,则需要设置ActiveRecord::Base.include\u root\u in\u json=false
否则Backbone.js将无法从返回的json中提取Todo对象。谢谢。我尝试了这两个更改,但todos.js仍然无法从服务中获取todos。我是否正确设置了url?有没有可能发布一个正在工作的todos.js的代码?看看,我是否也需要扩展控制器?向后端发送什么请求?