Backbone入门基础 - Model和View基本用法

声明:本文为笔记文章,学习自麦子学院-Backbone入门基础

1. Model

  • 创建和实例化Model类 Backbone.Model.extend()
  • 方法 get(), set(), toJSON()
var _obj={
    title:"task 1",
    description: 'description 1'
};
var TodoItem=Backbone.Model.extend({
});
var todoItem= new TodoItem(_obj);
//--result--
console.log(todoItem.get('title'));
console.log(todoItem.toJSON().description);
todoItem.set('title','task 2');
console.log(todoItem.get('title'));

2.View

[1] 概念

  • 与界面元素对应的JS对象
  • 对HMTL元素的操作,通过view对象完成

[2] View

(1)创建和实例化View类
var TodoItemView = Backbone.View.extend({
});
var todoItemView= new TodoItemView();
(2)el和$el
el表示页面上的元素(原生的DOM对象),而$el是这个元素的jQuery封装
(3)定制View
  • 方法一
var TodoItemView = Backbone.View.extend({
    //三个内置属性:标签名,类名,ID
    tagName: "li",
    className: "item-task",
    id:'item1',
    //其他自定义属性都需写到attributes中
    attributes:{
        style:"color: red;"
    }
});
  • 方法二
<p id="header">header</p>

在类中或在实例中绑定

var TodoItemView = Backbone.View.extend({
    el: "#header"
});
var todoItemView= new TodoItemView({
    el: "#header"
});         
(4)重载render
  • 方法一
var TodoItemView = Backbone.View.extend({
    tagName: 'p',
    id:'header',
    render: function(){
        this.$el.html('<span>header content</span>');
        return this;
    }
});
var todoItemView= new TodoItemView();
todoItemView.render().$el.appendTo($('body'));
  • 方法二
<p id="header">header</p>
var TodoItemView = Backbone.View.extend({
    render: function(){
        this.$el.html('<span>header content</span>');
        return this;
    }
});
var todoItemView= new TodoItemView({
    el: "#header"
});
todoItemView.render();
(5)移除View
todoItemView.remove();

[3] View和Model的关系

(1)使用Model实例化View

Model提供数据,View渲染数据

var todoItemView= new TodoItemView({
    model: todoItem
});
(2)在View中访问Model
var TodoItem=Backbone.Model.extend({
});
var todoItem=new TodoItem({
    title:"task 1",
    description: 'description 1'
});
var TodoItemView = Backbone.View.extend({
    tagname:'p',
    id:'header',
    render: function(){
        this.$el.html('<span>'+this.model.get('title')+'</span>');
        return this;
    }
});
var todoItemView= new TodoItemView({
    model: todoItem
});
todoItemView.render().$el.appendTo($('body'));

注意:当Model中的数据发生改变时,Backbone不会自动render

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值