backbone.js-如何获取本地或服务器数据
我对backbone.js非常陌生,为了试用,我制作了一个函数,使用数组附加一个元素。但我不知道如何从服务器或本地路径获取相同的内容 我尝试了一些教程,但仍然没有得到任何好的结果。是否有人可以更正我的函数以从本地文件夹或服务器获取数据 代码: 这是我的本地路径:backbone.js-如何获取本地或服务器数据,backbone.js,Backbone.js,我对backbone.js非常陌生,为了试用,我制作了一个函数,使用数组附加一个元素。但我不知道如何从服务器或本地路径获取相同的内容 我尝试了一些教程,但仍然没有得到任何好的结果。是否有人可以更正我的函数以从本地文件夹或服务器获取数据 代码: 这是我的本地路径:“…data/data.json” (function($){ var student = [ {name:'student1'}, {name:'student2'}, {name:'student3'}
“…data/data.json”
(function($){
var student = [
{name:'student1'},
{name:'student2'},
{name:'student3'}
]
var model = Backbone.Model.extend({
defaults:{
name:'default name'
}
});
var collection = Backbone.Collection.extend({
model:model
});
var itemViews = Backbone.View.extend({
tagname:'li',
render:function(){
this.$el.html(this.model.get('name'));
return this;
}
})
var view = Backbone.View.extend({
el: $("#contacts"),
initialize:function(){
this.collection = new collection(student);
this.render();
},
render:function(){
var that = this;
_.each(this.collection.models, function(item){
that.renderName(item);
})
},
renderName:function(item){
var itemView = new itemViews({model:item});
this.$el.append(itemView.render().el);
}
});
你可以,也可以。然后,当您运行它时,它会将JSON直接读入单个模型或模型集合。因此,在您的情况下,您的收藏可能看起来像
var collection = Backbone.Collection.extend({
url: '..data/data.json',
model: model
});
collection.fetch(); // Could also use collection.reset()
您只需要确保JSON格式正确,以匹配模型的属性。集合具有
url
属性,该属性链接到可以获取模型的url(当然是正确的JSON格式)
如果您有一个RESTful API,您可以将它们直接绑定到后端的集合
在您的情况下,可以修改集合定义,如下所示
var collection = Backbone.Collection.extend({
model:model,
url: '..data/data.json' //OR WHATEVER THE URL IS
});
然后,在实例化集合时,必须调用fetch()方法来填充集合
myCollection = new collection();
myCollection.fetch();
有关更多信息,请参见主干网将根据需要从服务器发送或接收的内容,在同一url上调用GET、POST、DELETE等。因此,如果您正在构建RESTAPI,那么控制器或路由器应该将适当的函数路由到这些方法。有关精确映射,请参见下文:
create → POST /collection
read → GET /collection[/id]
update → PUT /collection/id
delete → DELETE /collection/id
作为旁注,如果您无法控制从服务器返回的JOSN,则可以在parse函数中以您喜欢的任何格式对其进行格式化
parse: function(response) { return response.itemYouWantAdded; }
如果您的服务器返回对象中的对象,例如twitter提要,则会出现这种情况
或者,您可以在parse函数中手动从响应填充模型
parse: function(response) { var tmpModel = {
item1:response.item1,
item2:response.item2
};
return tmpModel; }
希望这有帮助 我做了更正,但我不会被解雇。但是控制台会显示数据。当你实例化集合时,你必须获取模型。我更新了帖子…你为什么不试着把你所拥有的东西添加到一个网站上,人们就可以插手了?