所以我使用rails-api gem创建了一个rails api。我将我的骨干代码放在默认的public / index.html中。我尝试了json链接并返回json,它只是一个名为'entry'的模型,其中包含一个名为'content'的字段以及一些默认的rails字段。但是骨干代码不起作用,你能发现这个问题吗?我只是想显示返回的json中的记录列表。
// Models window.Entry = Backbone.Model.extend(); window.EntryCollection = Backbone.Collection.extend({ model:Entry, url:"http://localhost:3000/entries" }); // Views window.EntryListView = Backbone.View.extend({ tagName:'ul', initialize:function () { this.model.bind("reset", this.render, this); }, render:function (eventName) { _.each(this.model.models, function (entry) { $(this.el).append("
答案 0 :(得分:0)
您是否可以检查/条目是否返回'结果'节点? 也许你在Rails中忘记了ActiveRecord :: Base.include_root_in_json = false?
答案 1 :(得分:0)
在你的AppRouter代码中,你有这一行:
this.entryListView = new EntryListView({model:this.entryList});
但是,entryList是Collection而不是Model,所以你必须像这样定义它:
this.entryListView = new EntryListView({collection:this.entryList});
同样,在EntryListView代码中,您有:
this.model.bind("reset", this.render, this);
...
_.each(this.model.models, function (entry) {
应该成为:
this.collection.bind("reset", this.render, this);
...
_.each(this.collection.models, function (entry) {
我不确定这是否就是一切,但这是我唯一能够立即看到的事情。
编辑:添加add'l更改为this.model参考