2014/08/11 – Backbonejs

[来自: Backbone.js 开发秘笈 第6章]

Template 用法:

通过 Underscore.js 提供的 _.template() 方法,我们可使用 <% ... %> 包含js代码;使用 <%= ... %> 输出变量值;使用 <%- ... %>输出转义后的变量值。

(function ($) {
    //define -------------------------
    var UserModel = Backbone.Model.extend();
    var UserCollection = Backbone.Collection.extend({
        model: UserModel
    });
    var UsersView = Backbone.View.extend({
        tagName: ‘ul‘,
        //用默认 Underscore 的 _.template() 方法定义模板
        template: _.template("<% _.each(users,function(user){%>" +
            "<li><a hre=‘javascript:;‘ data-id=‘<%= user.id %>‘><%= user.name %></a></li>"
            + "<%}); %>"),
        render: function () {
            //调用模板对象获取生成的 HTML
            $(this.el).html(this.template({
                users: this.collection.toJSON()
            }));
            return this;
        }
    });
    //instance -----------------------------
    var usersView = new UsersView({
        collection: new UserCollection([
            { id: 1, name: ‘yoyo‘ },
            { id: 7, name: ‘ronaldo‘ },
            { id: 4, name: ‘ramos‘ }
        ])
    });
    //apply -------------------------------
    $(function () {
        $(‘body‘).html(usersView.render().el);
    });

})(jQuery);

1. 模板加载器

模板元素:<script type="text/template" id="userTemplate">...</script>

(function ($, win, undefined) {
    $(function () {
        //define -------------------------------------------------------
        var $templates = {};
        $("script[type=‘text/template‘]").each(function () {
            $templates[$(this).attr(‘id‘)] = _.template($(this).html());
            $(this).remove();
        });
        $.tempates = $.tempates || $templates;
        //apply ---------------------------------------------------------
        $(‘body‘).html("<ul>" + $.tempates.userTemplate({ id: 1, name: ‘yoyo‘ }) + "</ul>");
    });
})(jQuery, window);

2014/08/11 – Backbonejs

时间: 2024-07-29 14:01:27

2014/08/11 – Backbonejs的相关文章

2014/08/05 – Backbonejs

[来自: Backbone.js 开发秘笈 第2章] Model API: (function ($) { //define Model Class ------------------- var ModelClass = Backbone.Model.extend({ defaults: {},//Backbone 支持在模型初始化时动态进行定义 [支持多行表达式设置默认值,即值为函数] initialize: function () { //模型对象被创建后即被调用 /* 注:如定义了默认属

2014/08/04 – Backbonejs

[来自: Backbone.js 开发秘笈 第1章] 各种模型实际上是通过扩展其基类 Backbone.Model 实现的.同理,定义的集合是靠扩展其基类 Backbone.Collection 而实现的. 控制器的功能被分散实现在 Backbone.Router 和 Backbone.View 当中. 路由器负责处理 URL 的变化,并且委派一个视图来继续处理应用.路由器(异步)获取模型后,随即触发一个视图的更新操作. 视图负责监听 DOM 事件.它要么对模型进行更新,要么通过路由器转移到应用

Bootstrap 3.2.0 源码试读 2014/08/11

第二部 @media print 212至217行   pre,   blockquote {    /* 块引用 */     border: 1px solid #999;     page-break-inside: avoid;   } 215行是个空格,是什么个意思?闲着蛋疼往前翻了翻,3.0.X版本没这个问题.根本没这行. 设置边框宽度为1px,实心,颜色#999,并且避免在内容里挺入分页符. page-break-inside据说只有opera支持,可用的值有3个 auto,默认值

2014/08/06 – Backbonejs

[来自:Backbone.js 开发秘笈 第3章] Collection API (function ($) { //define ----------------------------- var ModelD = Backbone.Model.extend({ defaults: { ID: 0, Name: '' }, idAttribute: 'ID' }); //定义集合对象 /* 在其内部,模型被存储在一个名为 models 的数组当中 */ var CollectionD = Ba

2014/08/13 – Backbonejs

[来自: Backbone.js 开发秘笈 第7章] Restful 服务调用 Collection.fetch() - 请求集合 Model.save() - 新增或修改模型(根据 Model.isNew() 方法判断操作类型) Model.destroy() - 删除模型 Model.sync() - 请求的执行方法, fetch(), save(), destroy() 都调用其方法进行操作请求 (function ($) { //define ----------------------

2014/08/14 – Backbonejs

[来自: Backbone.js 开发秘笈 第8章] 相关技术: 1. 使用 Require.js 组织项目结构 文件结构: index.html lib/ underscore.js jquery.js backbone.js js/ app.js userDefine.js index.html: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <titl

2014/08/08 – Backbonejs

[来自: Backbone.js 开发秘笈 第5章] Event API: (function ($) { //define ------------------------- var obj = {}; var obj2 = { commonEvent: function () { window.document.title = new Date().toString(); } }; //扩展对象包含事件 _.extend(obj, Backbone.Events); _.extend(obj

Bentley.Descartes.V8i.SS5.08.11.09.601 1DVD

Autodesk Softimage Entertainment Creation Suite 2015 x64 JetBrains PyCharm Pro 3.1.2 Pro Win/Mac/Linux Malwarebytes Anti-Malware Premium 2.0.1.1004 Multilanguage + Portable Killetsoft TRANSDAT 17.22 Multilanguage Evaer Video Recorder for Skype 1.5.3.

2014.08.04,读书,《Matlab概率与数理统计分析》-第1章 MATLAB的数据基础

第1章 MATLAB数据基础 虽然一直间或使用MATLAB,但从来没有系统的学习过,现在开始也不晚.先对几个重点或者平时忽略的要点做下笔记. %后的所有文字为注释,多条命令可以放在一行,但要用逗号或分号隔开,命令后的逗号表示显示结果,分号表示禁止显示结果. 符号…表示语句的余下部分将出现在下一行,但不能出现在变量名或运算符之间. M文件又称Script文件,具有全局性,文件中的所有变量在整个工作环境中有效. 命令: cumsum(x,dim),求累积和,matlab中cumsum函数通常用于计算