1. 程式人生 > >angularjs學習筆記--ng-class的三種使用方法

angularjs學習筆記--ng-class的三種使用方法

在使用原生js時,動態的控制樣式的思路就是更換class,而在angularjs中ng-class指令使這一操作變得十分簡單。

1.通過雙向資料繫結

demo1

js:

fonction changeClass () {
    $scope.className = "change";
}

html:
<div ng-class="{{className}}" ></div>

css:
.change {
    color:#f00;
}

這種方式雖然不推薦使用,但是語法上是沒有任何問題的,因為在controller中,我們一般寫的都是js程式碼,與控制樣式分離開來,而且這樣也必然要觸發一些改變樣式的程式碼。

例如:某個值為真顯示樣式1,為假顯示樣式2,就得在controller裡做一些判斷,這樣做的缺點就是讓程式碼的層次關係不清晰。

2.字串真假
當某個功能是根據真假顯示兩種不同的樣式,這種方法最方便了。

demo2

js :
function changeClass () {
    $scope.className = true; //或false
}

html :
<div ng-class="{true:'class1',false:'class2'}[className]"></div>

當className為真時使用樣式1,為假時使用樣式2.
這樣子就會清晰很多,也十分好用。但如果有多個樣式要切換該怎麼辦呢。

3.鍵值對方式
這種方式就是對於一個div要更換不同的樣式,一般多於兩個以上。

demo3

js :
function changeClass () {
    $scope.redClass = "red";
    $scope.yellowClass = "yellow";
    $scope.greenClass = "green";
}

html:
<div ng-class="{'red:redClass,'yellow':yellowClass,'green':greenClass}"></div>

css:
.red{...}
.yellow{...
} .green{...}

第三種方法要注意一點就是,如果多個樣式都為true,優先順序根據寫入順序,展示排在最後的樣式。dome3中如果redClass,yellowClass,greenClass都為真,則優先顯示green的樣式,以此類推。

以上三種方法都可以實現動態樣式,根據個人習慣選擇即可。

相關推薦

angularjs學習筆記--ng-class使用方法

在使用原生js時,動態的控制樣式的思路就是更換class,而在angularjs中ng-class指令使這一操作變得十分簡單。 1.通過雙向資料繫結 demo1 js: fonction changeClass () { $scope.class

angularJs工作筆記-ng-classng-style的幾用法

今天總結下工作中常用的ng-class的用法 一、ng-repeat列表中的用法 <ul> <li ng-repeat="(i,item) in itemArr"

【C#學習筆記】using 使用方式

ride over 啟動 類型 thread catch key log 調用 1.using指令。using + 命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似於Java的import,這個功能也是最常用的,幾乎每個cs的程序都會

Spring MVC學習筆記3,對映方式得到Handler

這篇部落格寫的是通過三種方式對映得到Handler 第一種:配置HandlerMapping,根據beanname進行查詢: 配置如下: <form action="hello.do">         hello:<input type="text"

學習筆記--程序的基本狀態及其轉換

(1)一個執行中的程序不斷改變其狀態,通常程序必須具備以下三個基本狀態:    ①就緒狀態:    當程序已分配到除CPU以外的所有必要資源後,只要在獲得CPU,便可立即執行,程序這時的狀態就稱為就緒

C#學習筆記(12)——方法操作XML

結點 記得 ext 應用程序 eval 資源 特性 pla cells 說明(2017-7-11 16:56:13): 原文地址: C#中常用的幾種讀取XML文件的方法 XML文件是一種常用的文件格式,例如WinForm裏面的app.config以及Web程序中的web.c

OpenTK學習筆記(2)-工作窗口的方法創建方法(控制臺)

百度 ogr opened rgs 依據 想要 rds 窗口 gif 參考資料: 控制臺下類的形式創建:http://www.cnblogs.com/podolski/p/7406628.html 總結: 一、控制臺下類的形式創建 1.新建控制臺應用 2.連網執行Nug

opencv學習筆記之對灰度影象遍歷的方法

灰度影象遍歷的三種方法 通過指標訪問 通過迭代器訪問 動態地址計算,通過at()函式實現、實現程式碼: #include<opencv2/opencv.hpp> #include<

Mybatis 學習筆記(九)——Mybatis 逆向工程的方法

Mybatis 逆向工程   逆向工程通常包括由資料庫的表生成 Java 程式碼 和 通過 Java 程式碼生成資料庫表。而Mybatis 逆向工程是指由資料庫表生成 Java 程式碼。   Mybaits 需要程式設計師自己編寫 SQL 語句,但是 Myba

AngularJs學習筆記(1)——ng-app

oot you ctrl span fun 代碼 問題 筆記 doctype 眾所周知: ng-app 指令用於告訴 AngularJS 應用當前這個元素是根元素。 所有 AngularJS 應用都必須要要一個根元素。 HTML 文檔中只允許有一個 ng-app 指令,如果

JavaSE8基礎 Class 獲取一個類的Class對象的方法

int -1 png version src 博文 rac 公開 auto 禮悟: 好好學習多思考,尊師重道存感恩。葉見尋根三返一,活水清源藏於零。 虛懷若谷良心主,皓月當空自在王。願給最苦行無悔,誠勸且行且珍惜。

js中設置元素class方法小結

utf-8 nbsp brush firefox body charset utf 代碼 title 一、el.setAttribute(‘class‘,‘abc‘); 復制代碼 代碼如下: <!DOCTYPE HTML> <HTML>

Python 學習 001:Python判斷檔案是否存在的方法

目錄 1.使用os模組判斷檔案是否可做讀寫操作 2.使用Try語句 3.使用pathlib模組 正文 通常在讀寫檔案之前,需要判斷檔案或目錄是否存在,不然某些處理方法可能會使程式出錯。所以最好在做任何操作之前,先判斷檔案是否存在。這裡將介紹三種判斷檔案或資料夾是否存

Linux下執行時呼叫動態連結庫.so的方法筆記

在/etc/ld.so.conf.d/下建立xxx.conf,在文字中加入.so所在路徑,如:/usr/xxx等等,然後使用相應ldconfig命令使之生效。 將.so所在路徑新增為LD_LIBRARY_PATH環境變數。 在編譯命令中使用-Wl,-rpath

機器學習中,從樣本集合分得訓練集、測試集的方法

一、為什麼要分開訓練集與測試集 在機器學習中,我們是依靠對學習器的泛化誤差進行評估的方法來選擇學習器。具體方法如下:我們需要從訓練集資料中產出學習器,再用測試集來測試所得學習器對新樣本的判別能力,以測試集上的測試誤差作為泛化誤差的近似,來選取學習器。 通常我

angularjs學習筆記——AngularJS與MVC模式

本文主要解決一下幾個問題: 什麼是MVCMVC優點缺點AngularJS的MVC是怎樣的來個簡單的示例 一、什麼是MVC        MVC模式非常重要,無論你是B/S還是C/S的開發者(實際上個人認為B/S也是C/S的一種特殊形式),甚至你是純Client或Browse

angularjs中迴圈定時器的方法

本文主要設計定時器的三種迴圈,模板自配 1、$interlval實現,比較簡單和原生js的setInterval比較相似 var app = angular.module('myApp',[]);

Java 獲取Class物件的方法

Java中的java.lang.Class,簡單理解就是為每個java物件的型別標識的類,虛擬機器使用執行時型別資訊選擇正確的執行方法,用來儲存這些執行時型別資訊的就是Class類。虛擬機器為每種型別管理一個獨一無二的物件,即Class物件,當類被載入時,對應的Class型

獲取class對象的方法以及通過Class對象獲取某個類中變量,方法,訪問成員

student 多種方法 多個 編譯錯誤 oid 單個 dex flex 調用 public class ReflexAndClass { public static void main(String[] args) throws Exception {

【OpenCV學習筆記】之:Mat初始建立方法----要求資料連續儲存

int rows=15; // int cols=40; int size=rows*cols; vector<int>Va(size); vector<Vec<int, 8>>Vb(size); vector<Vec4i>V