Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 转换主干';localStorage中的Todo列表示例_Node.js_Backbone.js_Mongoose_Express - Fatal编程技术网

Node.js 转换主干';localStorage中的Todo列表示例

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

我已经看了()好几年了。代码使用本地存储,我想尝试并转换它,以便通过RESTful Web服务进行操作

假设Web服务已经存在于路由
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的代码?看看,我是否也需要扩展控制器?向后端发送什么请求?