2014-02-20 73 views
0

我在主干中运行这个示例程序。但是我得到一个错误,如'不能调用方法'得到'未定义'。我用迄今为止所知道的所有方法都尝试过。但我仍然有这个问题。任何人都可以帮助我解决这个问题。Uncaught TypeError:无法调用未定义的方法'get':BackBone

(function(){ 
    //Providing a global scope 
    window.App = { 
     Models : {}, 
     Views: {}, 
     Collections: {} 
    }; 

    window.template = function(id){ 
     return _.template($('#'+id).html()); 
    }; 

    // Declared a Model for Task  
    App.Models.Task = Backbone.Model.extend({  
    }); 

    App.Collections.Tasks = Backbone.Collection.extend({ 
     model: App.Models.Task 
    }); 

    App.Views.Tasks = Backbone.View.extend({ 
     tagName: 'ul', 

     render: function(){ 
      this.collection.each(this.addOne,this); 
     }, 

     addOne: function(task){ 
      //creating a child view 
      var taskView = new App.Views.Task({model: task}); 

      //append it to root element 
      this.$el.append(taskView.render().el); 
     } 
    });  

    App.Views.Task = Backbone.View.extend({ 
     tagName: 'li', 
     render : function(){ 
      this.$el.html(this.model.get('title')); 
      return this; 
     } 
    });   

    var tasksCollection = new App.Collections.Tasks([ 
     { 
     title: 'Goto Store', 
     priority: 4 
     }, 
     { 
     title: 'Goto Store2', 
     priority: 5 
     }, 
     { 
     title: 'Goto Store3', 
     priority: 6 
     }, 
     { 
     title: 'Goto Store4', 
     priority: 7 
     } 
    ]); 

    var tasksView = new App.Views.Task({collection : tasksCollection}); 
    tasksView.render(); 
    console.log(tasksView.el); 
    // $(document.body).append(tasksView.el);  
})(); 
+0

最后一行代码是什么'})();'? –

+1

这是一个立即调用的函数表达式。 – Puigcerber

回答

1

我不知道这是否是一个拼写错误,但如果没有,你的问题是,你要设置你的收藏在你的任务视图,而不是在你的任务视图。

var tasksView = new App.Views.Tasks({collection : tasksCollection}); 
相关问题