backbone.js - 如何获取本地或服务器数据

3gw*_*ain 3 backbone.js

我是backbone.js的新手,为了试一试,我做了一个函数来使用我的数组追加一个元素.但我不知道如何从服务器或本地路径获取相同的内容.

我尝试了一些教程,但仍然无法获得任何好结果.任何人都可以更正我的功能从本地文件夹或服务器获取数据吗?

代码:

这是我的本地路径: '..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);
  }
});
Run Code Online (Sandbox Code Playgroud)

Dan*_*e B 8

集合具有url链接到可以获取模型的URL 的属性(当然,以适当的JSON格式).

如果您有RESTful API,则可以将它们直接绑定到后端的集合.

在您的情况下,您可以按如下方式修改集合定义

var collection = Backbone.Collection.extend({
  model:model,
  url: '..data/data.json' //OR WHATEVER THE URL IS 
});
Run Code Online (Sandbox Code Playgroud)

然后在实例化集合时,必须调用fetch()方法来填充集合.

   myCollection = new collection();
   myCollection.fetch();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此文章