2014-10-07 63 views
0
define(function(require) { 
     var $ = require('jquery'), 
       Backbone = require('backbone'), 
       People = Backbone.Model.extend({ 
      initialize: function() { 

       var people_object = new People({name: "How Bizarre", artist: "OMC"}); 
       var people_collections = new PeopleCollection([people_object]); 
       console.log(people_collections.models); 
      } 

     }), 
     PeopleCollection = Backbone.Collection.extend({ 
      model: People, 
     }); 

     return { 
      People: People, 

     }; 

    }); 



    require(['jquery', 'backbone', 'app/models/persons'], function($,Backbone,persons{   
      var p = new persons.People(); 
    }); 

在這裏,我寫上面的代碼來顯示控制檯上的一些數據,但是當我嘗試我在控制檯上得到以下錯誤消息。我是新的骨幹js.can你告訴我在那裏我錯了無法在控制檯上打印模型數據

<error> 
w.pick 
a.Model 
r 
Backbone.Model.extend.initialize 
a.Model 
r 
Backbone.Model.extend.initialize 
a.Model 
r 
Backbone.Model.extend.initialize 
a.Model 
+0

爲什麼在模型中創建集合?這個代碼中有一些錯誤。我將嘗試解釋如何使用'Backbone.Model'和'Backbone.Collection'。 – 2014-10-07 10:40:14

回答

0

所有的錯誤首先從循環依賴(無限循環)時,因爲你有一種無限遞歸。任何時候,你初始化像new People(),initializeinitialize這種模式的方法調用相同的'新人()'等等......

我猜你正在使用require.js

因此,嘗試這樣的:

human.js

define(function(require){ 
    var Backbone = require('backbone'); 

    var Human = Backbone.Model.extend({ 
     defaults: { 
      name: 'Test', 
      surname: 'Testovyan', 
      sex: 1 
     } 
    }); 

    return Human; 

}); 

people.js

define(function(require){ 
    var Backbone = require('backbone'); 
    var Human = require('path/to/human'); 
    var People = Backbone.Collection.extend({ 
     initialize: function() { 
      console.log(this); 
     }, 
     model: Human, 
     url: '/path/to/remote/url' 
    }); 

    return People; 
}); 

controller_or_view.js

define(function(require){ 

    require(['jquery', 'backbone', 'path/to/people'], function() { 
     var newPeople = [{name: 'John', surname: 'Smith'}, {name: 'Jane', surname: 'Smith'}]; 
     var people = new People(newPeople); 
     }); 

}); 

這裏是工作fiddle使用相同的代碼。

這是創建您的人員集合的最佳方式。 創建模型,使用引用模型的模型屬性創建集合。然後用對象數組初始化您的集合,然後它將自動成爲模型或初始化您的集合而無需模型並從遠程獲取它們。

希望這會有所幫助。