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>
        <title></title>
    </head>
<!-- data-main 程序入口点 -->
<script src="lib/require.js" data-main="js/app"></script>
<body>

</body>
</html>

app.js:

//require 配置信息
require.config({
    //定义库别名
    paths: {
        jquery: "../lib/jquery",
        underscore: "../lib/underscore",
        backbone: "../lib/backbone"
    },
    //定义模块间关系
    shim: {
        backbone: {
            deps: ["jquery", "underscore"],//依赖关系
            exports: "Backbone"//非 AMD 标准类库定义
        },
        underscore: {
            exports: "_"
        },
        jquery: {
            exports: "$"
        }
    }
});
//require() 方法启动应用程序
require(["jquery", "../js/userDefine"], function ($, user) {
    $(function () {
        $("body").html(new user.userListView({
            collection: new user.userCollection([
                { id: 1, name: "yoyo" },
                { id: 4, name: "ramos" },
                { id: 7, name: "ronaldo" }
            ])
        }).render().el);
    });
});

userDefine.js:

//AMD 标准模块定义    [参数一为加载模块数组,参数二为模块加载后的回调函数]
define(["jquery", "backbone", "underscore"], function ($, Backbone, _) {
    return {
        userCollection: Backbone.Collection.extend({
            model: Backbone.Model.extend()
        })
        ,
        userListView: Backbone.View.extend({
            tagName: "ul",
            render: function () {
                this.$el.html(_.map(this.collection.models, function (model) {
                    return "<li><a href=‘javascript:;‘>" + model.get("name") + "</a></li>";
                }));
                return this;
            }
        })
    };
});

2014/08/14 – Backbonejs

时间: 2024-10-06 14:04:55

2014/08/14 – 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 事件.它要么对模型进行更新,要么通过路由器转移到应用

2014/08/11 – Backbonejs

[来自: Backbone.js 开发秘笈 第6章] Template 用法: 通过 Underscore.js 提供的 _.template() 方法,我们可使用 <% ... %> 包含js代码:使用 <%= ... %> 输出变量值:使用 <%- ... %>输出转义后的变量值. (function ($) { //define ------------------------- var UserModel = Backbone.Model.extend(); v

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/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

2015-08-25 php大力力016 兄弟连高洛峰php教程(2014年 14章数据库章节列表)

2015-08-25 php大力力016 兄弟连高洛峰php教程(2014年 14章数据库章节列表) [2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库  15:58 [2014]兄弟连高洛峰 PHP教程14.1.2 phpMyAdmin的使用 15:59 [2014]兄弟连高洛峰 PHP教程14.1.3 php访问MySQL 17:27 [2014]兄弟连高洛峰 PHP教程14.1.4 在PHP脚本中操作MySQL数据库1  17:38 [2014]兄弟连高洛峰 PHP教程14.1.

Bootstrap 3.2.0 源码试读 2014/08/09

第一部分 normalize.css 104至110行 code,    /* 编辑代码 */ kbd,    /* 键盘输入的文本 */ pre, samp {    /* 范例,sample的简写 */   font-family: monospace, monospace;    /* 这个地方应该是写错了,第二字体应该是serif */   font-size: 1em; } 设置字体的大小为1em,字体为monospace. 111至119行 button, input, optgro

在MyEclipse配置自己安装的Tomcat(2014.08.18)

今天因为要在tomcat下运行一个java项目,第一次嘛,遇到了不少问题,总结分享一下: 第一次,我直接将 MyEclipse 生成的项目放到 tomcat 安装目录的 webapps 目录下,运行出现404,无法访问. 然后想了想,发现这是个错误的做法.应该先通过 MyEclipse 将项目部署到 Tomcat 下: 然后, MyEclipse 自带了 tomcat,我要配置自己安装的 TomCat : (请看参考资料:http://jingyan.baidu.com/article/4853