javascript - Backbone.js - 模型 URL 与集合 URL

标签 javascript jquery backbone.js asp.net-web-api

大家好!

美好的一天!我开始调整 Backbone.js 框架,并且我对模型的 URL 有一个模糊的理解:

   var TodoItem = Backbone.Model.extend({
     urlRoot: 'http://localhost:3354/api/todo/GetAllTodo' // this guy right here
   }

影响集合的 URL - 一旦在集合中使用了所述模型:

 var TodoList = Backbone.Collection.extend({
                model: TodoItem,
                url: 'http://localhost:3354/api/todo/DosomethingElse' //Conflict of URL?
        }

最后,当我尝试 model.fetch() 时,该服务通过 [{}] 格式返回数据的 JSON 表示形式,这使得我的模型具有一个 object 属性,它包含返回的实际 json 数据 - 这是一个问题 - 因为模型旨在用于单个记录而不是 array[] 数据。

感谢您抽出宝贵时间,非常感谢您对此提供的帮助。

最佳答案

如果您检查 Model.url 的 Backbone 源代码, 你会看到模型的 url base 是由

var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url');

这意味着当您执行 model.fetch()

时,您的 TodoItem.urlRoot 优先于 TodoList.url

您可以使用 parse提取所需的格式:

var TodoItem = Backbone.Model.extend({
    urlRoot: 'http://localhost:3354/api/todo/GetAllTodo',
    parse: function(data) {
        return data[0];
    }
}

关于javascript - Backbone.js - 模型 URL 与集合 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838903/

相关文章:

collections - Backbone.js:过滤集合的正确方法?

javascript - 应用过滤器后元素被删除

javascript - 列表样式在索引 4000 之后停止显示罗马数字

javascript - 当 subview 从 Backbone 中的服务获取 JSON 数据时,在父 View 中渲染 subview

javascript - 尽管调用了 off() ,事件仍在继续处理

javascript - 单击 jQuery 时折叠 slideToggle

javascript - 修改backbone.js中的 View 元素时模型不会改变

javascript - Highchart - 以编程方式更改 y 轴的标签文本

javascript - 循环遍历集合中的 jQuery 对象,而不为每次迭代初始化新的 jQuery 对象

javascript - 如何根据附加参数刷新剑道网格