篇章三:[AngularJS] 使用AngularCSS動態載入CSS

前言

上列兩篇文章裡,介紹了如何如何使用AngularAMD來動態載入Controller與Service。本篇文章以此為基礎,介紹如何使用AngularCSS來動態載入CSS,讓專案功能更加模組化,增加開發與維護的工作效率。主要為自己留個紀錄,也希望能幫助到有需要的開發人員。

安裝

本篇文章以「使用AngularAMD動態載入Service」的範例程式為基礎,為其附加動態載入CSS的功能。進入本篇的開發步驟之前,開發人員可以先依照上一篇文章的步驟來建立基礎架構。

動態載入Service範例:點此下載

取得基礎架構之後,開啟命令提示字元CD到這個基礎架構的資料夾輸入下列指令,就可以使用bower來取得AngularCSS套件。

bower install angular-css

完成上列步驟後,開啟工作資料夾裡面的bower_components資料夾,可以發現加入了angular-css這個套件。

掛載AngularCSS

取得AngularCSS套件之後,接著就要將套件掛載到系統的Angular裡面。首先編輯工作資料夾內既有的app.js檔案,修改檔案中的require.js的設定參數,用來加入系統運行時AngularCSS的套件路徑、以及相依性。(相關require.js的使用介紹,可以參考:require.js的用法 - 阮一峰的网络日志)

require.config({
    paths: {

        // ......

        // angularCSS
        "angularCSS": "bower_components/angular-css/angular-css"
    },
    shim: {        

        // ......

        // angularCSS
        "angularCSS": ["angular"]
    }
});

修改完成require.js設定參數之後,在同一個app.js裡,修改下列require語法用來將AngularCSS加入專案的載入套件清單。(相關require語法的使用介紹,同樣可以參考:require.js的用法 - 阮一峰的网络日志)

// bootstrap
define(["angular", "angularAMD", "angular-ui-router", "angularCSS"], function (angular, angularAMD) {
    // ......
});

接著在同一個require語法內,修改下列angular語法來啟動angularCSS套件。這邊要特別注意,angularCSS的module名稱是「"door3.css"」,要小心不要打錯了。(相關angular的使用介紹,建議參考:AngularJS 建置與執行 - Shyam Seshadri, Brad Green)

// module
var app = angular.module("app", ["ui.router", "door3.css"]);

最後,同樣在require語法內,使用angularCSS語法所提供的css參數,來定義每個ui-router路由被啟動時所要動態載入的CSS檔案。(相關AngularCSS所提供的css參數定義,可以參考:AngularAMD:For States (UI Router) - Door3)

// route
$stateProvider

    // home
    .state("home", angularAMD.route({
        url: "/home",
        templateUrl: "home.html",
        controllerUrl: "home.js",
        css: "home.css"
    }))

    // home
    .state("about", angularAMD.route({
        url: "/about",
        templateUrl: "about.html",
        controllerUrl: "about.js",
        css: "about.css"
    }))
;

開發Template、CSS

修改app.js用以掛載AngularCSS之後,就可以著手使用CSS語法,來建立系統裡每個路由所使用的CSS檔案。

  • home.css

    h1 {
      color: blue;
    }
    
  • about.css
    h1 {
      color: red;
    }
    

執行

完成開發步驟後,就可以準備使用Chrome執行index.html來檢視成果。但是在檢視成果之前,必須要先參考下列資料開啟Chrome的必要功能,後續就使用Chrome來正常的執行index.html。

執行index.html之後,會系統依照路由設定進入預設的Home頁面。而使用Chrome的開發者工具,可以看到系統加載了Home頁面的Template、Controller、CSS,並且顯示在頁面上。

點擊Home頁面的About按鈕,會切換到About頁面。這時同樣從Chrome的開發者工具中,可以看到系統是在點擊了About按鈕之後,才去加載About頁面的Template、Controller、Service、CSS來顯示在頁面上,這也就是AngularCSS所提供的動態載入CSS功能。

範例下載

範例檔案:點此下載

时间: 2024-10-04 11:49:40

篇章三:[AngularJS] 使用AngularCSS動態載入CSS的相关文章

篇章一:[AngularJS] 使用AngularAMD動態載入Controller

前言 使用AngularJS來開發Single Page Application(SPA)的時候,可以選用AngularUI Router來提供頁面內容切換的功能.但是在UI Router的使用情景裡,需要開發人員將每個State所使用的Controller預先載入之後,才能正常的切換頁面內容.這也就代表開發人員所建立的SPA,必須要在啟動的當下,就先將整個SPA所用到的Controller都預先載入到瀏覽器之中.而這樣的預先載入所有Controller備用的動作,在大型的專案中很容易造成瀏覽器

篇章二:[AngularJS] 使用AngularAMD動態載入Service

前言 「使用AngularAMD動態載入Controller」:這篇文章裡介紹如何使用AngularAMD來動態載入Controller.本篇文章以此為基礎,介紹如何使用AngularAMD來動態載入Service,讓SPA的啟動過程更加輕量化,用以提升使用者的操作體驗.並且也透過這樣掛載式的設計,讓專案功能更加模組化,增加開發與維護的工作效率.主要為自己留個紀錄,也希望能幫助到有需要的開發人員. AngularAMD 安裝 本篇文章以「使用AngularAMD動態載入Controller」的範

sp_executesql 可動態傳入傳出參數

在做一個功能時,要求參數是動態傳入并且有參數可以動態傳出,字符串動態組成的sql以前只是知道 用Execute去執行,今 天發現sp_executesql這個是可以達成這個目 的. ALTER PROCEDURE [dbo].[SLMFormateExportCenterFields] -- Add the parameters for the stored procedure here @TMP varchar(max), @fields nvarchar(max) outputASBEGIN

Jquery easy ui datagrid動態加載列問題

1.如下图效果是当选择不同的日期范围时datagrid则会加载出对应的列数 2.首先是后台组装数据,我采用的是循环并拼接DataTable数据,如下代码 //循環添加datagrid所需的表頭數據 for (int i = 0; i < table.Columns.Count; i++) { columns.AppendFormat("{{field:'{0}',title:'{1}',align:'center',width:{2}}},", table.Columns[i].

.net dropdownlist 動態顯示,指定字段

dropdownlist 動態顯示,指定字段 this.ddlPermission.Items.Clear(); this.ddlPermission.Items.Insert(0,new ListItem("請選擇","")); this.ddlPermission.Items.Insert(1,new ListItem("管理01",DEP_ID+"01")); this.ddlPermission.Items.Inser

[AngularJS] 使用AngularCSS动态加载CSS

[AngularJS] 使用AngularCSS动态加载CSS 前言 使用AngularAMD动态加载Controller 使用AngularAMD动态加载Service 上列两篇文章里,介绍了如何如何使用AngularAMD来动态加载Controller与Service.本篇文章以此为基础,介绍如何使用AngularCSS来动态加载CSS,让项目功能更加模块化,增加开发与维护的工作效率.主要为自己留个纪录,也希望能帮助到有需要的开发人员. AngularCSS 安装 本篇文章以「使用Angul

用php動態產生各種尺寸的圖片

我的做法是用php動態產生各種尺寸的圖片,例如<img src="img.php?src=a.jpg&width=100&height=200"...<img src="img.php?src=a.jpg&width=200&height=200"...<img src="img.php?src=a.jpg&width=300&height=200"... 我這個a.jpg就是原圖

css3動畫庫Animate.css

第一次寫博客,第一次,好緊張,哈哈.不說廢話了,進入正題. 最近做了個網站,領導說效果要做的炫一點.於是就想到了css3的animation了.誰說效果還是挺簡單的,但第一次寫,也廢了一些時間. http://xujk.cc/y1y/page2.html (大屏幕慘不忍睹= =!!!) 後來感覺有點費時間,網上找了一下,有現成的動畫庫 Animate.css,果斷下載,下次可以直接用了,哈哈! 下載地址 :http://daneden.github.io/animate.css/ 我的demo

在 React Native 中使用 moment.js 無法載入語系檔案

moment.js 是很常見的日期時間 library,友善的 API 與極佳的執行效率是它的兩大賣點.例如 (new Date()).getFullYear(),如果使用 moment.js 我可以只寫 moment().get('year'),可讀性增強許多. 問題 React Native 0.29.x 預設使用 ES6,並支援 import 語法.問題出在如果遵照官方網站的說明去載入語系檔,會發生找不到模組 (cannot find module) 的錯誤.推測可能是 moment.js