構建基於Javascript的移動web CMS——模板

來源:互聯網
上載者:User

標籤:移動   web   cms   backbone.js   源碼   

在上一篇《構建基於Javascript的移動CMS——Hello,World》講述了墨頎 CMS的大概組成,並進行了一個簡單的樣本,即Hello,World。這一次,我們將把CMS簡單的放到一個可以啟動並執行伺服器環境中,也就是說我們需要一個簡單的運行環境,以便於進行更有意思的東西——添加模板。

開始之前環境準備類Unix系統

因為電腦上已經裝有python了,這裡便用python起一個簡單的server,對於GNU/Linux、Mac OS等類unix系統來說,都可以這樣運行:

python -m SimpleHTTPServer 8000

Windows

對於Windows來說,如果你已經裝有python的話,那自然是可以用上面的方式運行。如果沒有的話,可以試一下mongoose,下載一個安裝之。

JS庫準備

需要準備的JS庫有

  1. Backbone
  2. RequireJs的外掛程式text.js
  3. Mustache
只想要這次的代碼

那麼就這樣子吧

 [email protected]:gmszone/moqi.mobi.git

接著切換到learing分支

git checkout learning

checkout到這個版本

git checkout 62fbdaf

構建移動web CMS

檔案清單如下所示

.|____app.js|____backbone.js|____HomeView.js|____index.html|____jquery.js|____main.js|____mustache.js|____require.js|____router.js|____text.js|____underscore.js

在這裡有些混亂,但是為了少去其中的一些配置的麻煩,就先這樣講述。

添加路由

用Backbone的一個目的就在於其的路由功能,於是便添加這樣一個js——router.js,內容如下所示:

define([    ‘jquery‘,    ‘underscore‘,    ‘backbone‘,    ‘HomeView.js‘], function($, _, Backbone, HomeView) {    var AppRouter = Backbone.Router.extend({        routes: {            ‘index‘: ‘homePage‘,            ‘*actions‘: ‘homePage‘        }    });    var initialize = function() {        var app_router = new AppRouter;        app_router.on(‘route:homePage‘, function() {            var homeView = new HomeView();            homeView.render();        });        Backbone.history.start();    };    return {        initialize: initialize    };});


在這裡我們先忽略掉HomeView.js,因為這是下面要講的,在router.js中,我們定義了一個AppRouter,

  1. index指向的是在初始化時候定義的homePage,這樣就可以將首頁轉向HomeView.js。
  2. *actions便是將其他未匹配的都轉向homePage。

接著我們需要修改一下app.js,讓他一運行地時候便可以進入路由選擇

define([‘jquery‘, ‘underscore‘, ‘router‘], function($, _, Router) {    var initialize = function() {        Router.initialize();    };    return {        initialize: initialize    };});

也就是初始化一下路由。

建立首頁View

使用Mustache的優點在於,後台僅僅只需要提供資料,並在前台提供一個位置。因此我們修改了下HTML

<!DOCTYPE html><html>    <head>        <title>My Sample Project</title>        <script data-main="main" src="require.js"></script>    </head>    <body>        <div id="aboutArea">{{project}}</div>    </body></html


建立了aboutArea這樣一個ID,於是我們便可以很愉快地在HomeView.js中添加project的資料。

define([    ‘jquery‘,    ‘underscore‘,    ‘mustache‘,    ‘text!/index.html‘], function($, _, Mustache, indexTemplate) {    var HomeView = Backbone.View.extend({        el: $(‘#aboutArea‘),        render: function() {            var data = {                project: "My Sample Project"            };            this.$el.html(Mustache.to_html(indexTemplate, data));        }    });    return HomeView;});


在HomeView.js中,定義了data這樣一個object,代碼最終的效果便是用"My Sample Project"替換到HTML中的{{project}}。

這樣我們便完成了一個真正意義上的移動web CMS平台的Hello,World,剩下的便是添加一個又一個的腳手架。

CMS最後的效果

CMS: http://cms.moqi.mobi/

源碼 Github: https://github.com/gmszone/moqi.mobi

QQ討論群: 344271543

Release版下載0.2.tar.gz

構建基於Javascript的移動web CMS——模板

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.