backbone.js笔记

1:backbone创建模型与集合的方法

<script>

//var model = new Backbone.Model();
//
//var models = new Backbone.Collection();
//
//var view = new Backbone.View();

//var model = new Backbone.Model();
//
//model.set(‘name‘,‘hello‘);
//
//alert( model.get(‘name‘) );

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) );

</script>

2实例化模型的方法:

<script>

//var M = Backbone.Model.extend({
//    aaa : function(){  //实例方法
//        alert(123);
//    }
//},{
//    bbb : function(){  //静态方法
//        alert(456);
//    }
//});
//
//var model = new M;
//model.aaa();
//M.bbb();


//var M = Backbone.Model.extend({
//    defaults : {
//        name : ‘hello‘
//    }
//});
//
//var model = new M;
//alert( model.get(‘name‘) );


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

var ChildM = M.extend();

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

</script>

 

3:模型上监听事件的方法:

<script>

//var M = Backbone.Model.extend({
//    defaults : {
//        name : ‘hello‘
//    },
//    initialize : function(){  //初始化构造函数
//        
//        this.on(‘change‘,function(){
//            alert(123);
//        });
//        
//    }
//});
//
//var model = new M;
//model.set(‘name‘,‘hi‘);







//var M = Backbone.Model.extend({
//    defaults : {
//        name : ‘hello‘
//    },
//    initialize : function(){  //初始化构造函数
//        
//        this.on(‘change:name‘,function(model){
//            
//            console.log(model);
//            
//        });
//        
//    }
//});
//
//var model = new M;
//model.set(‘name‘,‘hi‘);


$(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‘);

});

4模型设置和获取后台数据的方法

<script>

//Backbone.sync = function(method, model) {
//      alert(method + ": " + JSON.stringify(model));
//      model.id = 1;
//};
//
//var M = Backbone.Model.extend({
//    defaults : {
//        name : ‘hello‘
//    },
//    url : ‘/user‘
//});
//
//var m = new M;
//m.save();
//m.save({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();

</script>

5配置路由的方法

<script>

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();

</script>

6视图绑定事件的方法

<script>

$(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;
    
});

</script>

7绑定模型的例子:

<script>

//$(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‘);
//
//});









$(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‘);

});

</script>
</head>

<body>

<!--<script type="text/template" id="template">
    
    <div><%= name %></div>
    
</script>-->




<script type="text/template" id="template">
    <% for (var i=0;i<5;i++) { %>
        <div><%= name %></div>
    <% } %>
</script>
</body>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。