backbone

backbone issue

文件结构

app
├── assets  # 根目录的assert
│   ├── images
│   └── index.html
├── common  # backbone的配置、application、基类等等
│   ├── application.coffee
│   ├── config.coffee
│   ├── mediator.coffee
│   ├── mock.coffee
│   └── views
│       └── base
│           └── view.coffee
├── lib
│   ├── utils.coffee
│   └── view-helper.coffee
└── tutorial # 具体的模块
    ├── assets
    │   └── README.md
    ├── controllers
    │   └── README.md
    ├── initialize.coffee
    ├── routes.coffee
    └── views # view和template
        ├── home
        │   ├── list-view.coffee
        │   └── templates
        │       └── README.md
        └── README.md

修改页面的dom使用render

注意,取属性值的时候需要用双引号,因为解释器不识别单引号

view el

注意<script>require('/tutorial/initialize');</script>这一行需要写在 id='test' 的元素后面,否则会找不到这个dom

MVC

1.定义model|collection

2.定义view

new collection; 绑定事件、events中和init中绑定; render添加dom初始元素

chaplin

使用chaplin后有一些变化,以及用法

view

根据源码 https://github.com/chaplinjs/chaplin/blob/master/src/chaplin/views/view.coffeearrow-up-right

backbone view中的el现在为container

autoRender是否在constructor里面调用一次render

不要在使用_bindAll会出现问题

item-view

item-view继承自Chaplin.View,以前使用render添加dom,现在可以直接使用 hbs模板,不过根据源码getTemplateFunction必须重写

重写成,可以放在你自定义的View基类里面

hbs模板使用双括号引用model中的属性

list-view

与item-view相同,也是需要重写getTemplateFunction list view中的itemView指明具体的ItemView,当list view的collection中 有变化时会自动渲染dom,此例中的addItem在collection里面调用add会处发 这个事件,注意container和listSelector的不同

源码中listSelector的注释:

例如本例子中的模板里面有一个ul,注意listSelector是在本模板的dom中选择, 即:

Last updated