繁体   English   中英

如何使用骨干.js创建单独的模型,视图和控制器

[英]how create separate model , view and controller using backbone.js

  • 我再次编辑代码,并遇到以下2个错误:

1)Complex_collection未定义

  model: Complex_model

2)没有定义Complex_model

 model: Complex_model

我正在使用骨干js,这是我的代码,我通过使用骨干js做到了这一点,但是我的代码未运行我想要使用骨干js的单独模型,视图和控制器

//模型

(function(){ var Complex_model = Backbone.Model.extend({        
    sync:function() {},
    validate:function() {},
    url:function() {},          
    defaults :{
        name : null
    }    
});})(this);

//视图

(function(){

FriendView = Backbone.View.extend({
    events :{
        'click #add-input' : 'add'
    },
    initialize: function(){
        this.collection = new Complex_collection(); // This is collection
        _.bindAll(this, 'render');
    },      
    add : function() {
        alert("hello");
        var friend_name = $('#input').val();
        this.collection.add({ name : friend_name });
    },
    render : function(){
        $("#friends-list").append("<li>"+ model.get("name")+"</li>");
    },      
});

var view = new FriendView(); })(this);

//采集

(function(){    

    var Complex_collection = Backbone.Collection.extend({

    model: Complex_model

});})(this);

谢谢

您不应该在初始化代码中创建同一对象的新实例,您的代码应如下所示:

(function(){ 
    this.complex_model = Backbone.Model.extend({        
        sync:function() {},
        validate:function() {},
        url:function() {},      
    });
})(this);

// View

(function(){
    var vw = view = function(){};
    FriendView = Backbone.View.extend({
        events :{
            'click #add-input' : 'add'
        },
        initialize: function(){
            this.friendslist = new FriendList(); // This is your collection right?
            _.bindAll(this, 'render');
        },      
        add : function() {
            var friend_name = $('#input').val();
            this.friendslist.add({ name : friend_name });
        },
        render : function(){
            $("#friends-list").append("<li>"+ model.get("name")+"</li>");
        },      
    });
})(this);

// Collection
(function(){    this.complex_collection = Backbone.Collection.extend({
    model : complex_model
});})(this);

// Your main app
var view = new FriendView();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM