201507221403_《backbone之一——新建模型和集合、实例化模型、模型上监听事件的方法、模型设置和获取后台数据、配置理由方法、视图绑定事件的方法、绑定模型等》

一 . 新建

var model_1 = new Backbone.Model({'name':'hello'});

var model_2 = new Backbone.Model({'name':'hi'});

var models = new Backbone.Collection();

models.add( model_1 );

models.add( model_2 );

alert( JSON.stringify(models) );

二. 实例化模型

var M = Backbone.Model.extend({
    aaa : function(){
        alert(123);
    }
});

var ChildM = M.extend();

var model = new ChildM;
model.aaa();

三. 模型上监听事件的方法

$(function(){

    var M = Backbone.Model.extend({
        defaults : {
            name : 'hello'
        }
    });
    
    var V = Backbone.View.extend({
            
        initialize : function(){
            
            this.listenTo( this.model , 'change' , this.show );
            
        },
        show : function(model){
            $('body').append( '<div>'+ model.get('name') +'</div>' );
        }
        
    });
    
    
    var m = new M;
    var v = new V({model:m});
    m.set('name','hi');

});

四. 模型设置和获取后台数据

Backbone.sync = function(method, model) {
      alert(method + ": " + JSON.stringify(model));
};

var C = Backbone.Collection.extend({
    initialize : function(){
        this.on('reset',function(){
            alert(123);
        });
    }, 
    url: '/users'
});

var models = new C;
models.fetch();

五. 配置理由方法

var Workspace = Backbone.Router.extend({

    routes: {
        "help":                 "help",    // #help
        "search/:query":        "search",  // #search/kiwis
        "search/:query/p:page": "search"   // #search/kiwis/p7
    },
    
    help: function() {
        alert(1);
    },
    
    search: function(query, page) {
        alert(2);
    }

});

var w = new Workspace;
Backbone.history.start();

六. 视图绑定事件的方法

$(function(){
    
    var V = Backbone.View.extend({
        
        el : $('body'),
        events : {
            'click input' : 'aaa',
            'mouseover li' : 'bbb'
        },
        aaa : function(){
            alert(123);
        },
        bbb : function(){
            alert(456);
        }
        
    });
    
    var veiw = new V;
    
});

七. 绑定模型

$(function(){

    var M = Backbone.Model.extend({
        defaults : {
            name : 'hello'
        }
    });
    
    var V = Backbone.View.extend({
            
        initialize : function(){
            
            this.listenTo( this.model , 'change' , this.show );
            
        },
        show : function(model){
            $('body').append( this.template(this.model.toJSON()) );
        },
        template: _.template($('#template').html())
        
    });
    
    
    var m = new M;
    var v = new V({model:m});
    m.set('name','hi');

});

八. 

前端-语言
原文地址:https://www.cnblogs.com/beesky520/p/4667332.html