鍍金池/ 教程/ HTML/ BackboneJS環(huán)境設置
BackboneJS Collection.extend()方法
BackboneJS collection.pop()方法
BackboneJS collection.set()方法
BackboneJS collection.remove()方法
BackboneJS view.attributes
Backbone.View.extend()方法
BackboneJS router.route()方法
BackboneJS model.destroy()方法
BackboneJS視圖初始化
BackboneJS事件stopListening
BackboneJS collection.clone()方法
BackboneJS router.navigate()方法
BackboneJS model.idAttribute屬性
BackboneJS router.execute()方法
BackboneJS模型
BackboneJS model.previousAttributes()方法
BackboneJS model.escape()方法
BackboneJS model.previous()方法
BackboneJS應用
BackboneJS view.setElement()方法
BackboneJS collection.findWhere()方法
BackboneJS collection.slice()方法
BackboneJS view.el
BackboneJS集合
BackboneJS model.unset()方法
BackboneJS collection.comparator屬性
BackboneJS collection.push()方法
BackboneJS model.save()方法
BackboneJS collection.shift()方法
BackboneJS collection.parse()方法
BackboneJS Collection.model
BackboneJS教程
BackboneJS model.defaults
BackboneJS事件trigger
BackboneJS collection.sync()方法
BackboneJS model.has()方法
BackboneJS model.isNew()方法
BackboneJS model.url()方法
BackboneJS Model.get()方法
BackboneJS視圖
BackboneJS model.clone()方法
BackboneJS collection.toJSON()方法
BackboneJS Backbone.emulateHTTP
BackboneJS Router初始化
BackboneJS環(huán)境設置
BackboneJS model.fetch()方法
BackboneJS事件
BackboneJS Model.set()方法
BackboneJS router.routes
BackboneJS collection.unshift()方法
BackboneJS collection.add()方法
BackboneJS collection.models
BackboneJS model.hasChanged()方法
BackboneJS collection.url()方法
BackboneJS Backbone.history.start()方法
BackboneJS model.validate()方法
BackboneJS collection.create()方法
BackboneJS model.parse()方法
BackboneJS事件on
BackboneJS collection.at()方法
BackboneJS事件off
BackboneJS view.$(selector)方法
BackboneJS .sync()方法
BackboneJS collection.sort()函數
BackboneJS collection.length
BackboneJS model.changedAttributes()方法
BackboneJS model.isValid()方法
BackboneJS model.attributes屬性
BackboneJS collection.reset()方法
BackboneJS model.validationError
BackboneJS model.clear()方法
BackboneJS collection.get(id)方法
BackboneJS model.changed
BackboneJS同步
BackboneJS 集合初始化
BackboneJS collection.fetch()方法
BackboneJS model.sync()方法
BackboneJS Model.extend()方法
BackboneJS model.id屬性
BackboneJS model.urlRoot()方法
BackboneJS路由
BackboneJS事件once
BackboneJS collection.pluck()方法
BackboneJS view.template(data)方法
BackboneJS事件listenTo
BackboneJS collection.where()方法
BackboneJS model.toJSON()方法
BackboneJS Backbone.emulateJSON
BackboneJS Model.initialize()方法
BackboneJS view.$el
BackboneJS事件listenToOnce
BackboneJS model.cid屬性

BackboneJS環(huán)境設置

Backbone.js是非常容易安裝和工作的。本章將討論關于下載Backbone.js庫和設置。 Backbone.js可以以兩種方式使用:

  • 從它的官方網站上下載UI庫。

  • 從下載CDN UI庫

從它的官方網站上下載UI庫

當你打開鏈接http://backbonejs.org/,將看到如下畫面:

Backbone.js Setup

正如你所看到的,有三種選擇這個庫的下載:

  • 開發(fā)版本 - 右鍵點擊此按鈕,保存為,你會得到完整的源JavaScript庫。

  • 生產版 - 右鍵點擊此按鈕,保存為,你會得到它的包和gzip壓縮的Backbone-min.js庫文件。

  • 邊緣版本 - 右鍵點擊此按鈕,保存為,你會得到一個未發(fā)布的版本,即正在開發(fā)中的版本,所以使用它需要您自擔風險。

依賴

Backbonejs取決于以下JavaScript文件:

  • Underscore.js : 這是唯一的硬依賴需要被包括在內。你可以從這里得到它

  • jQuery.js : 包括通過Backbone.Router和DOM操作與Backbone.View此文件的REST風格的持久性,歷史的支持。可以從這里得到它

  • json2.js : 包括這個文件對舊的Internet Explorer支持。你可以從這里得到它

從CDN下載用戶界面庫

一個CDN或內容分發(fā)網絡是一個旨在服務于文件到用戶服務器的網絡。 如果使用CDN鏈接在你的網頁,它移動的托管文件從自己的服務器多了一系列外部因素。這還提供了,如果訪問者網頁中已經從相同的CDN下載Backbone.js的副本,它不必重新下載的優(yōu)點。

正如上面所說的,Backbone.js有以下JavaScript的依賴性:

  • jQuery
  • Underscore

因此CDN對于所有上述情況如下:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
在本教程中我們使用CDN版本的庫。

例子

讓我們創(chuàng)建一個使用Backbone.js的一個簡單的例子。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Hello World using Backbone.js</title>
</head>
<body>
  <!-- ========= -->
  <!-- Your HTML -->
  <!-- ========= -->

  <div id="container">Loading...</div>

  <!-- ========= -->
  <!-- Libraries -->
  <!-- ========= -->
  <script src="https://code.jquery.com/jquery-2.1.3.min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
 
  
  <!-- =============== -->
  <!-- Javascript code -->
  <!-- =============== -->
  <script type="text/javascript">
    var AppView = Backbone.View.extend({
      // el - stands for element. Every view has an element associated with HTML content, will be rendered.
      el: '#container',
      // It's the first function called when this view is instantiated.
      initialize: function(){
        this.render();
      },
      // $el - it's a cached jQuery object (el), in which you can use jQuery functions to push content. Like the Hello YiiBai in this case.
      render: function(){
        this.$el.html("Hello YiiBai!!!");
      }
    });

    var appView = new AppView();
  </script>
  
</body>
</html>

代碼中的注釋不言自明。一些細節(jié)如下:

  • 在body標簽開始的HTML代碼

    <div id="container">Loading...</div>

    這打印 Loading...

  • 接下來,我們添加了以下的CDN

     <script src="https://code.jquery.com/jquery-2.1.3.min.js" type="text/javascript"></script>
      <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
      <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
  • 接下來,我們有以下腳本:

     var AppView = Backbone.View.extend({
          // el - stands for element. Every view has an element associated with HTML content, will be rendered.
          el: '#container',
          // It's the first function called when this view is instantiated.
          initialize: function(){
            this.render();
          },
          // $el - it's a cached jQuery object (el), in which you can use jQuery functions to push content. Like the Hello World in this case.
          render: function(){
            this.$el.html("<h1>Hello YiiBai!!!</h1>");
          }
        });
    
        var appView = new AppView();

    該注釋是自我解釋。最后一行,我們初始化新AppView()。這將在ID=“container”將打印“Hello YiiBai”

保存該頁面為myFirstExample.html。在您的瀏覽器,并為下面會看到結果。