1. 程式人生 > >Angular 自定義指令詳解

Angular 自定義指令詳解

1.命名:

     可以使用普通字串,也可以使用駝峰法來命名一個指令,例如 firstDirective, 但在使用它時需要以 - 分割: first-directive。

2.建立方式:

    Angularjs的指令建立有四種形式,比如建立的指令hello:

(1)元素名(E):

<hello></hello>

(2)標籤屬性(預設)(A):

<div hello></div>

(3)標籤樣式類的形式(C):

<div class="hello"></div>

(4)註釋(M)(註釋號注意有個空格

): 

<!-- directive: hello -->
3.指令的建立JS程式碼:
myApp.directive('hello',function(){  
    return {  
        restrict:'AE',  
        template:'<div>hello everyone!</div>',  
        //transclude:false  
        replace:false  
    }  
}); 

a.restrict 值可以是以下幾種:

  • E 作為元素名使用,A 作為屬性使用,C 作為類名使用,
    M 作為註釋使用

         restrict 預設值為 EA, 即可以通過元素名和屬性名來呼叫指令。

b.replace 解析

初始 html:

  E: <hello><div>angular指令學習</div></hello>   

    如果replace設定為false,最終頁面展現的html結果如下:

  E: <hello><div>hello everyone!</div></hello>    
   如果replace設定為true,原有 dom 節點被覆蓋,最終頁面展現的html結果如下:
  E:<div>hello everyone!</div>     

c.如果想把html 裡原有的DOM 結構保留,要設定transclude的值,並利用 ng-transclude 儲存原有 html:

myApp.directive('hello',function(){  
    return {  
        restrict:'ACEM',  
        template:'<div>hello everyone!<div ng-transclude></div></div>', //通過ng-transclude,將預設的 HTML 儲存在div標籤裡
        transclude:true  
    }  
}); 

HTML 如下顯示:(原有的 html 得以保留)

  E:<hello><div>hello everyone!<div ng-transclude><div class="ng-scope">angular 指令學習</div></div></hello>   

transclude這個配置很重要,可以實現指令的互相巢狀。

 參考:
 ①:http://stackoverflow.com/questions/15285635/how-to-use-replace-of-directive-definition
 ②: http://www.runoob.com/angularjs/angularjs-directives.html

相關推薦

angular 定義指令 --restrict、restrict、replace

emp bold span 類型 ret space con 設置 註意 Angularjs 允許根據實際業務需要自定義指令, 通過angular全局對象下的 directive 方法實現。可以自定義屬性、自定義標簽、自定義功能 接下來定義一個名叫custom的指令,並利用

angular 定義指令 Directive

聲明 其他 原型繼承 創建 tool 兩個 模板 變化 組合 廢話不多說,下面就直接上代碼 //angular指令的定義,myDirective ,使用駝峰命名法 angular.module(‘myApp‘, []) .directive(‘myDirective‘,

Angular 定義指令

1.命名:      可以使用普通字串,也可以使用駝峰法來命名一個指令,例如 firstDirective, 但在使用它時需要以 - 分割: first-directive。 2.建立方式:     Angularjs的指令建立有四種形式,比如建立的指令hello:

angular定義指令

指令(directive)是angular裡面最核心也是最難懂的東西,在慕課網看了下大漠窮秋老溼的視訊,自己百度半天做了一些小test,總算把一切都搞明白了。 先列出學習來源: 一、指令的建立: 首先你得先建立一個module: var modu

AngularJs定義指令(5) - link

演示 hang cursor off drag font 雙向 事件 date 在指令中操作DOM,我們需要link參數,這參數要求聲明一個函數,稱之為鏈接函數。 寫法: link: function(scope, element, attrs) {  // 在這裏操作DO

AngularJs定義指令

定義指令的方法:angular.module('myApp', []) .directive('myDirective', function () { // 指令定義放在這裡 }); 第一個引數,指令的名字myDirective 用來在檢視中引用特定的指令。第二

Angular定義指令之compile, link, controller屬性及例項演示

本文章主要就angularjs指令中的compile,link及controller函式的使用和區別進行詳細討論。以下是本文的結構: directive的執行原理 compile用法 link 用法 controller 用法 compile,link及co

Angular定義指令之scope屬性及例項演示

本文將對AngularJS自定義指令詳解中的scope屬性配合例項演示,進行深度講解: scope屬性值可以是Boolean型別, 也可以是 Object型別, Boolean型別: scope值為false時,可以理解成指令內部並沒有一個新的sco

Angular-定義指令-下

接下來 -h 模塊 use 相互 讓我 model too 服務 自定義指令學習有段時間了,學了些紙上談兵的東西,還沒有真正的寫個指令出來呢。。。所以,隨著學習的接近尾聲,本篇除了介紹剩余的幾個參數外,還將動手結合使用各參數,寫個真正能用的指令出來玩玩。   我們在自定義指

深究AngularJS——定義服務(factory、service、provider)

string targe 返回 config 屬性 doctype 三種方式 啟用 print 前言 3種創建自定義服務的方式。 Factory Service Provider 大家應該知道,AngularJS是後臺人員在工作之余發明的,他主要應用了後臺早就存

Android定義view

this boolean mar 處理 都是 並且 jdk text 命名 從繼承開始 懂點面向對象語言知識的都知道:封裝,繼承和多態,這是面向對象的三個基本特征,所以在自定義View的時候,最簡單的方法就是繼承現有的View 通過上面這段代碼,我定義了一個Ske

Android Gradle 定義Task

png 發布 我們 批處理 使用總結 實用 shift fonts 博客 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自【趙彥軍的博客】 一:Gradle 是什麽 Gradl

Angular17 Angular定義指令

分類 dto end sel 數據 str too rdm cor 1 什麽是HTML   HTML文檔就是一個純文本文件,該文件包含了HTML元素、CSS樣式以及JavaScript代碼;HTML元素是由標簽呈現,瀏覽器會為每個標簽創建帶有屬性的DOM對象,瀏覽器通過渲染

Angular JS 中 指令

scope [] 功能 spa fun table clas rest 方法 Angular JS的強大功能就在於其可以自定義很多指令,現在就指令做一下詳細的剖析。 一個Angular js 指令(directive)的生命周期 開始於$compile方法 結束於$link

Spring Boot 定義日誌

本節內容基於 Spring Boot 2.0. 你所需具備的基礎 什麼是 Spring Boot? Spring Boot 核心配置檔案詳解 Spring Boot 開啟的 2 種方式 Spring Boot 自動配置原理、實戰 Spring Boot 2.x 啟動全過程原始碼分析

我的springboot之路(2)----springboot定義配置

一、前言 我的springboot之路(1)介紹了springboot的誕生背景以及優點等,我們知道springboot簡化了程式設計配置,它體現出了一種 約定優於配置,也稱作按約定程式設計,是一種軟體設計正規化,旨在減少軟體開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。 一般

定義View(3)

大家教師節快樂啊,不知道勤學的Coder們有沒有去嘗試下繪製上篇文章中最後留下的進階效果,不管怎樣,還是一起動手寫一遍吧!看看套路是否一致。 水波紋 首先來看圖-水波紋中的效果,其具有以下特點: 從內到外四層,內圓外環; 從內到外四個色值;

【mui】 事件管理及定義事件

1、事件繫結可以使用addEventListener()方法監聽某個特定元素上的事件外, 也可以使用.on()方法實現批量元素的事件繫結。 addEventListener示例(單個元素事件繫結): mui.plusReady(function(){ docume

spring中freemarker定義標籤

最近因工作需要,從網上搜了一個jeecms網站,準備進行借鑑使用,發現裡面對模板用的不錯,前面雖說也對freemarker有用,但是還沒有這麼深入,所以就查了一些資料,下面進行總結下。 一、jar包準備 首先是Spring、SpringMVC的依賴jar包…… 然後是Fr

angular定義指令使用$compile動態生成html

<script> angular .module(‘app‘) .controller(‘SampleCtrl‘, function ($scope, $filter) { $scope.open