成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Angular directive 實(shí)例詳解

BLUE / 3389人閱讀

摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。

準(zhǔn)備代碼,會(huì)在實(shí)例中用到

var app = angular.module("app", []);

angular指令定義大致如下

app.directive("directiveName", function() {
  return {
    // config
  }
})

其中return返回的配置對(duì)象包含很多參數(shù),如下一一說(shuō)明。

1. restrict

值為字符串,可選參數(shù),指明指令在DOM中以什么形式被聲明





默認(rèn)值為restrict: "EA",表示可以在DOM里面可以用元素形式和屬性形式被聲明。一般來(lái)說(shuō),如果你想創(chuàng)建一個(gè)自己模板的組件時(shí),則使用元素形式,但是僅僅是為已有元素添加功能的話,就使用屬性名。

如果想要支持IE8,則最好使用屬性和類形式來(lái)定義,另外從angular 1.3.X開始,已經(jīng)放棄支持IE8了。

2. priority

數(shù)字,可選參數(shù),致命指令的優(yōu)先級(jí),若在單個(gè)DOM元素上有多個(gè)指令,則優(yōu)先級(jí)高的先執(zhí)行。

當(dāng)然,設(shè)置指令的優(yōu)先級(jí)不太常用,但是比較特殊的例子是,內(nèi)置指令ng-repeat的優(yōu)先級(jí)為1000,而ng-init的優(yōu)先級(jí)為 450。

3. terminal

布爾型,可選參數(shù),可以被設(shè)置為true或者false,若設(shè)置為true,則優(yōu)先級(jí)低于此指令的其他指令則無(wú)效,不會(huì)被調(diào)用優(yōu)先級(jí)相同任然會(huì)執(zhí)行。

4. template

字符串或者函數(shù),可選參數(shù)。

可以是一段html文本

app.directive("hello", function() {
  return {
    template: "

Hello, world!

" } })

使用如下

渲染結(jié)果為


  

Hello, world!

也可以是一個(gè)函數(shù),可接受兩個(gè)參數(shù)Element與Attrs

其中Element是指使用此指令的元素,而Attrs則是實(shí)例的屬性,它是由一個(gè)元素上所有屬性組成的集合,形如

{
  title: "test",
  id: "testDiv",
  class: "demo",
  input: "text",
  ...
}

下面讓我們看看template是一個(gè)函數(shù)時(shí)的情況

app.directive("hello", function() {
  return {
    template: function(element, attrs) {
      return "
"+ attrs.title +"
" } }; });

html代碼

渲染結(jié)果


  
message

實(shí)例地址

5. replace

布爾型,默認(rèn)值為false,設(shè)置為true的時(shí)候,表示可以用模板內(nèi)容替換自定義的元素標(biāo)簽。

在template的例子中,我們發(fā)現(xiàn)渲染結(jié)果中包含有自定義的元素,很顯然,這并不是我們想要的渲染結(jié)果,因此將replace設(shè)置為true之后,hello標(biāo)簽將會(huì)消失

app.directive("hello", function() {
  return {
    replace: true,
    template: function(element, attrs) {
      return "
"+ attrs.title +"
" } }; });

渲染結(jié)果如下,hello標(biāo)簽消失不見

message
6. templateUrl

字符串或者函數(shù),可選參數(shù)

可以使一個(gè)代表html文件路徑的字符串,也可以是一個(gè)函數(shù),大致意思與template一樣。

在本地開發(fā)時(shí),需要運(yùn)行一個(gè)服務(wù)器,不然使用templateUrl會(huì)報(bào)錯(cuò)

Cross origin request script(cors)

由于加載html模板是通過異步加載,若加載大量的模板會(huì)拖慢網(wǎng)站的速度,這里有一個(gè)技巧,就是先緩存模板,你可以先在你的index頁(yè)面加載好,將下列代碼作為你頁(yè)面的一部分包含在內(nèi)

這里的id屬性就是被設(shè)置在templateUrl上用的

另外一種方法緩存如下

app.run(function($templateCache) {
  $templateCache.put("template.html", "
template
"); })
7. scope

布爾值或者對(duì)象,可選參數(shù),默認(rèn)值為false,表示繼承父級(jí)作用域。

如果值為true,表示繼承父作用域,并創(chuàng)建自己的作用域(子作用域)

如果為對(duì)象,{},則表示創(chuàng)建一個(gè)全新的隔離作用域。

首先我們需要來(lái)了解一下scope的繼承機(jī)制。我們使用ng-controller這個(gè)指令來(lái)舉例。我們都知道ng-controller可以從父作用域中繼承并創(chuàng)建一個(gè)新的子作用域。如下:

parentNode: {{aaa}}
childrenNode: {{aaa}}
angular.module("app", [])
.controller("demoController", function($scope) {
    $scope.aaa = "children";
})

實(shí)例地址

這時(shí)頁(yè)面的顯示結(jié)果為

parentNode: parent
childrenNode: children

當(dāng)時(shí)當(dāng)我們并沒有在demoController的作用域中給aaa賦值,也就是在上例中刪除這一句$scope.aaa = "children";,那么執(zhí)行結(jié)果就為

parentNode: parent
childrenNode: parent

注意:如果一個(gè)元素上有多個(gè)指令都使用了隔離作用域,那么只有其中一個(gè)可以生效,只有指令模板中的根元素才能獲得一個(gè)新的作用域,這時(shí)候,scope就被設(shè)置為true了。

parentNode: {{aaa}}
childrenNode: {{aaa}}
lastNode: {{aaa}}
angular.module("app", [])
.controller("demoController01", function($scope) {
    $scope.aaa = "children";
})
.controller("demoController02", function($scope) {
    $scope.aaa = "last"
})

實(shí)例地址

接下來(lái),我們通過一個(gè)簡(jiǎn)單明了的例子來(lái)說(shuō)明scope取值的不同差別

parent: {{ name }}
angular.module("app", [])
.controller("mainController", function($scope) {
    $scope.name = "Jake";
})
.directive("myDirective", function() {
    return {
        restrict: "EA",
        scope: false,
        replace: true,
        template: "" +
            "
" + "childNode: {{ name }} " + "
" + "" + "
" } })

實(shí)例地址

點(diǎn)擊上面的實(shí)例地址,我們可以依次改變scope的值為false, true, {},結(jié)果發(fā)現(xiàn)

false:兒子繼承父親的值,改變父親的值,兒子的值也隨著改變,反之亦然,這就是繼承且不隔離

true:兒子繼承父親的值,改變父親的值,兒子的值也隨著改變,但是改變兒子的值,父親的值并沒有改變,這就是繼承但是隔離

{}:沒有繼承父親的值,所以兒子的值為空,改變?nèi)魏我环降闹刀疾粫?huì)影響另一方,這就是不繼承且隔離

當(dāng)想要?jiǎng)?chuàng)建一個(gè)可重用的組件時(shí),隔離作用域是一個(gè)很好的選擇,通過隔離作用域,我們可以確保指令是獨(dú)立的,并且可以輕松的插入到任何HTML APP中,并且這種做法防止了父作用域被污染。

隔離作用域可以通過綁定策略來(lái)訪問父作用域的屬性

我們來(lái)看一個(gè)例子

angular.module("app", [])
.controller("mainController", function($scope) {
})
.directive("helloWorld", function() {
    return {
        restrict: "EA",
        scope: false,
        replace: true,
        template: "

Hello world!

" } })

運(yùn)行上面的代碼,我們?cè)趇nput中輸入顏色值,比如red,那么hello world一行的背景就會(huì)變成紅色。動(dòng)手試試!

實(shí)例地址

但是,當(dāng)我們將scope的值設(shè)置為{}時(shí),再次運(yùn)行代碼就發(fā)現(xiàn)頁(yè)面并不能成功的完整顯示了.這是因?yàn)閧}讓helloWorld指令產(chǎn)生了隔離作用域,沒辦法從父級(jí)作用域中繼承到color的值了。

所以在template中的{{color}}變成了依賴于自己的作用域,而不是依賴于父級(jí)作用域。因此我們需要一些辦法來(lái)讓隔離作用域能夠讀取父級(jí)作用域的屬性,這個(gè)方法就是綁定策略。

下面我們來(lái)探索設(shè)置這種綁定策略的幾種方法

方法一 使用@來(lái)進(jìn)行單向文本(字符串)綁定
angular.module("app", [])
.controller("mainController", function($scope) {
})
.directive("helloWorld", function() {
    return {
        restrict: "EA",
        scope: {
            color: "@colorAttr"
        },
        replace: true,
        template: "

Hello world!

" } })

實(shí)例地址

這種辦法只能單向,通過在運(yùn)行的指令DOM上設(shè)置color-attr屬性,并且采用{{}}綁定某個(gè)模型值。當(dāng)然,我們也可以直接在這里綁定字符串的顏色值,如color-attr="red"

因此當(dāng)表達(dá)式的值發(fā)生變化時(shí),屬性color-attr的值也會(huì)發(fā)生變化,通過單向綁定該值,就可以改變隔離作用域中的屬性color.

如果綁定的隔離作用域?qū)傩悦c元素的屬性名相同,則可以采用缺省寫法

// html


// js
app.directive("helloWorld", function() {
   return {
       scope: { color: "@" },
       ...
   }
})
方法二、使用"="進(jìn)行雙向綁定

{{ color }}
angular.module("app", [])
.controller("mainController", function($scope) {
    $scope.color = "red";
})
.directive("helloWorld", function() {
    return {
        restrict: "EA",
        scope: {
            color: "="
        },
        replace: true,
        template: "

" + "Hello world!" + "

" + "
" } })

實(shí)例地址

此處也采用了類似的缺省寫法。

這里需要注意的是,我們要直接在指令元素設(shè)置屬性時(shí),是直接將實(shí)際的作用域模型復(fù)制給該屬性

這樣一個(gè)雙向綁定被建立了,改變?nèi)魏我粋€(gè)input值都會(huì)改變另外一個(gè)值。

方法三、使用"&"調(diào)用父作用域中的函數(shù)

{{ name }}
angular.module("app", [])
.controller("mainController", function($scope) {
    $scope.name = "yangbo";
    $scope.say = function() {
        alert("hello!");
    }
})
.directive("helloWorld", function() {
    return {
        restrict: "EA",
        scope: {
            name: "@",
            say: "&"
        },
        replace: true,
        template: ""
    }
})

實(shí)例地址

同樣采用了缺省寫法,運(yùn)行之后,彈出窗口!

8. transclude

布爾值或者字符element,默認(rèn)值為false

這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。當(dāng)我們開啟transclude之后,我們就可以使用ng-transclude來(lái)指明應(yīng)該在什么地方放置transclude的內(nèi)容

china

{{name}}
angular.module("app", [])
.controller("mainController", function($scope) {
    $scope.name = "yangbo5207";
})
.directive("helloWorld", function() {
    return {
        restrict: "EA",
        scope: {},
        replace: true,
        transclude: true,
        template: "
你看不見我
" } })

運(yùn)行上面的代碼,輸出

china
yangbo5207

我們查看渲染出來(lái)的html,結(jié)果為

china

yangbo5207

另外當(dāng)開啟transclude時(shí),會(huì)創(chuàng)建一個(gè)新的transclude空間,并且繼承父作用域(也就是scope設(shè)置的隔離作用域)

從上面例子我們知道,當(dāng)transclude的值被設(shè)置為true時(shí),嵌入的內(nèi)容為{{name}},但是如果將它的值設(shè)置為element呢,我們可以在上例的基礎(chǔ)上進(jìn)行一個(gè)簡(jiǎn)單的修改,發(fā)現(xiàn),嵌入內(nèi)容為整個(gè)元素

{{name}}

查看渲染結(jié)果

china

yangbo5207

注意:在一個(gè)指令的模板中,只能聲明一次ng-transclude

那么問題來(lái)了,如果我們想要把嵌入內(nèi)容多次放入我們的模板中怎么辦?

可以使用$transclude,后面會(huì)講到!也可以使用complie函數(shù)中,里面的transcludeFn參數(shù),后面會(huì)講到!或者使用link連接函數(shù)

9. controller

可以是一個(gè)字符串或者函數(shù)。

若為字符串,則將字符串當(dāng)做控制器的名字,來(lái)查找注冊(cè)在應(yīng)用中的控制器的構(gòu)造函數(shù)

angular.module("app", [])
.directive("myDirective", function() {
    return {
        restrict: "EA",
        replace: true,
        transclude: true,
        
        // 會(huì)查找模塊中其他被名為targetController的控制器
        controller: "targetController"
    }
})
.controller("targetController", function($scope, $element, $attrs, $transclude) {
    // 控制器邏輯放在這里
})

當(dāng)然,也可以直接在指令內(nèi)部定義為匿名函數(shù),同樣可以注入任何服務(wù)

angular.module("app", [])
.directive("myDirective", function() {
    return {
        restrict: "EA",
        replace: true,
        transclude: true,
        controller: function($scope, $element, $attrs, $transclude) {
            // 控制器邏輯
        }
    }
})

另外還有一些特殊的服務(wù)可以注入,

$scope 與指令元素相關(guān)聯(lián)的作用域

$element 當(dāng)前指令對(duì)應(yīng)的元素

$attrs 當(dāng)前元素的屬性組成的對(duì)象

$transclude 嵌入鏈接函數(shù),實(shí)際被執(zhí)行用來(lái)克隆元素和操作DOM中的函數(shù)(除非是用來(lái)定義一些可復(fù)用的行為,否則一般不推薦在這使用)

指令的控制器和link函數(shù)(后面會(huì)講到)可以進(jìn)行互換。區(qū)別在于,控制器主要用來(lái)提供可在指令間復(fù)用的行為,可對(duì)外提供與外部交互的接口,但是link鏈接只能在當(dāng)前指令內(nèi)部中定義行為,且無(wú)法在指令間復(fù)用。

外面的世界很精彩。
angular.module("app", [])
.directive("testDirective", function() {
    return {
        transclude: true,
        replace: true,
        controller: function($scope, $element, $attrs, $transclude, $log) {
            $transclude(function(clone) {
                var a = angular.element("");
                a.attr("href", $attrs.url);
                a.text(clone.text());
                $element.append(a);
            });
        }
    }
})

實(shí)例地址

$transclude 可以接受兩個(gè)參數(shù),第一個(gè)是$scope,第二個(gè)是才有參數(shù)clone的回調(diào)函數(shù)。

而這個(gè)clone實(shí)際上就是嵌入的內(nèi)容??梢栽诟鶕?jù)它做很多DOM操作。

它還有最簡(jiǎn)單的用法

angular.module("app", [])
.directive("testDirective", function() {
    return {
        transclude: true,
        replace: true,
        controller: function($scope, $element, $attrs, $transclude, $log) {
            
            // 這里的$transclude就是嵌入的內(nèi)容
            var a = $transclude();
            $element.append(a);
        }
    }
})

但是我們要注意,使用$transclude會(huì)生成一個(gè)新的作用域。默認(rèn)情況下,如果我們簡(jiǎn)單使用$transclude(),那么其作用域就是$transclude 生成的作用域。但是如果我們使用$transclude($scope, function(clone) {}),那么作用域就是directive的作用域了。

當(dāng)然問題又來(lái)了,如果我們想使用父級(jí)作用域呢?

$scope.$parent
炒美股,上老虎2
angular.module("app", [])
.controller("parentController", function($scope) {
    $scope.title = "PARENT TIGER";
})

.controller("sonController", function($scope) {
    $scope.title = "CHILDREN TIGER";
})

.directive("testDirective", function() {
    return {
        transclude: true,
        replace: true,
        controller: function($scope, $element, $attrs, $transclude, $log) {
            var a = $transclude();
            $element.append(a);
            $log.info($scope.title);
            $log.info($scope.$parent.title);
        }
    }
})

實(shí)例地址

10. controllerAs

angualr 1.2之后,就已經(jīng)開始支持controllerAs的語(yǔ)法,這樣我們就可以不用將屬性和方法掛載到$scope上,而是this上。

{{ demo.name }}
angular.module("app", [])
.controller("demoController", function() {
    this.name = "Jake";
})

實(shí)例地址

我們可以從實(shí)例中看出,這里的this就是指的as后面的那個(gè)別名。然后我們?cè)诒磉_(dá)式中就可以使用這個(gè)別名

我們知道,在directive中的controller,主要職能是對(duì)外提供交互接口,而結(jié)合require與link,因此我們常常會(huì)利用這樣的語(yǔ)法而非上面例子中的$scope

app.directive("testDirective", function() {
    return {
        controller: function() {
            this.name = "Jake";
        }
    }
})
11. require

字符串或者數(shù)組,字符串代表另一個(gè)指令的名字,它將作為link函數(shù)的第四個(gè)參數(shù)。具體用法我們可以舉例子來(lái)說(shuō)明。

假設(shè)現(xiàn)在我們要編寫兩個(gè)指令,兩個(gè)指令的link函數(shù)中存在許多重合的方法,這時(shí)候我們就可以將這些重復(fù)的方法寫在第三個(gè)指令的controller中,然后在這兩個(gè)指令中,使用require將第三個(gè)指令引入進(jìn)來(lái),然后我們就可以通過link連接函數(shù)的第四個(gè)參數(shù)引用這些重合的方法了

指令之間常常通過這種方式進(jìn)行交互

{{expander.text}}
var expModule=angular.module("expanderModule",[])
expModule.directive("accordion", function() {
    return {
        restrict : "EA",
        replace : true,
        transclude : true,
        template : "
", controller : function() { var expanders = []; this.gotOpened = function(selectedExpander) { angular.forEach(expanders, function(expander) { if (selectedExpander != expander) { expander.showMe = false; } }); } this.addExpander = function(expander) { expanders.push(expander); } } } }); expModule.directive("expander", function() { return { restrict : "EA", replace : true, transclude : true, require : "^?accordion", scope : { title : "=expanderTitle" }, template : "
" + "
{{title}}
" + "
" + "
", link : function(scope, element, attrs, accordionController) { scope.showMe = false; accordionController.addExpander(scope); scope.toggle = function toggle() { scope.showMe = !scope.showMe; accordionController.gotOpened(scope); } } } }); expModule.controller("SomeController",function($scope) { $scope.expanders = [{ title : "Click me to expand", text : "Hi there folks, I am the content that was hidden but is now shown." }, { title : "Click this", text : "I am even better text than you have seen previously" }, { title : "Test", text : "test" }]; });

實(shí)例地址

實(shí)例說(shuō)明,controller是用來(lái)與不同指令之間通信的。

另外我們可以在require的參數(shù)值加上下面的某個(gè)前綴,這回改變查找控制器的行為。

沒有前綴 指令會(huì)在自身提供的控制器中進(jìn)行查找,如果找不到任何控制器,則會(huì)拋出一個(gè)error

? 若在當(dāng)前指令中沒有找到所需的控制器,則會(huì)將null傳給link鏈接函數(shù)的第四個(gè)參數(shù)

^ 如果在當(dāng)前的指令中沒有找到所需的控制器,則會(huì)查找父元素的控制器

?^ 如果在當(dāng)前和父元素中都沒有找到控制器,則會(huì)將null傳給link

12. angular指令編譯過程

首先加載angular庫(kù),查找ng-app指令,從而找到應(yīng)用的邊界,根據(jù)ng-app劃定的作用域來(lái)調(diào)用$compile服務(wù)進(jìn)行編譯。

angular會(huì)遍歷整個(gè)html文檔,并根據(jù)js中指令的定義來(lái)處理在頁(yè)面上聲明的各個(gè)指令,按照指令的優(yōu)先級(jí)排列,根據(jù)指令中的配置參數(shù)(template, replace, transclude等)轉(zhuǎn)換DOM,然后就開始按照順序執(zhí)行各指令的compile函數(shù)(如果指令上有定義compile函數(shù))對(duì)模板自身進(jìn)行轉(zhuǎn)換。

此處的compile函數(shù)值什么指令中配置的,與上面說(shuō)的$compile服務(wù)不一樣

每個(gè)compile函數(shù)執(zhí)行完后會(huì)返回一個(gè)link函數(shù),所有的link函數(shù)會(huì)合成一個(gè)大的link函數(shù),然后這個(gè)大的link函數(shù)就會(huì)被執(zhí)行, 主要做數(shù)據(jù)綁定,通過 DOM上注冊(cè)監(jiān)聽器來(lái)動(dòng)態(tài)修改scope中的數(shù)據(jù),或者是使用$watchs監(jiān)聽scope中變量來(lái)修改DOM,從而建立雙向綁定等等。

若我們的指令中沒有配置compile函數(shù),那我們配置的link函數(shù)就會(huì)運(yùn)行,她做的事情大致跟上面compile返回之后所有的link合成的大link函數(shù)差不多。

所以,在指令中compile與link選項(xiàng)是互斥的,如果同時(shí)設(shè)置了這兩項(xiàng),那么就會(huì)把compile所返回的函數(shù)當(dāng)做是鏈接函數(shù),而link選項(xiàng)本身會(huì)被忽略。

13. compile編譯函數(shù)與link鏈接函數(shù)

cmopile選項(xiàng)可以返回一個(gè)對(duì)象或者函數(shù),在這里我們可以在指令和實(shí)時(shí)數(shù)據(jù)被放到DOM之前進(jìn)行DOM操作,比如我們可以在這里進(jìn)行添加或者刪除節(jié)點(diǎn)的DOM操作。

所以編譯函數(shù)是負(fù)責(zé)對(duì)模板的DOM進(jìn)行轉(zhuǎn)換,并且僅僅只會(huì)運(yùn)行一次

//compile函數(shù)的語(yǔ)法
compile:function compile(tElement,tAttrs,transclude){
      return{
        pre:function preLink(scope,iElement,iAttrs,controller){},
        post:function postLink(scope,iElement,iAttrs,controller){}
      }
    }

對(duì)于我們編寫的大部分指令來(lái)說(shuō),并不需要對(duì)模板進(jìn)行轉(zhuǎn)換,所以大部分情況只需要編寫link函數(shù)就行。

preLink函數(shù)會(huì)在編譯階段之后,指令鏈接到子元素之前執(zhí)行,類似的,postLink會(huì)在指令鏈接到子元素之后執(zhí)行。這意味著,為了不破壞綁定過程,如果你需要修改DOM結(jié)構(gòu),你應(yīng)該在postLink函數(shù)中來(lái)做這件事情。

link函數(shù)負(fù)責(zé)將作用域與DOM進(jìn)行鏈接

//link鏈接函數(shù)
link:function postLink(scope,iElement,iAttrs){}

若指令中定義有require選項(xiàng),則link函數(shù)會(huì)有第四個(gè)參數(shù),代表控制器或者所依賴的指令的控制器(上面require選項(xiàng)例子已有例子)

內(nèi)容都真夠多的,終于整理完了,今天寫了兩篇文章,感覺好累!如果大家覺得文章對(duì)你有幫助,求贊求收藏。

許多內(nèi)容都是從不同的網(wǎng)站上整理而來(lái),每一個(gè)實(shí)例都是自己運(yùn)行過后保存在codepen上,大家可以結(jié)合codepen的例子結(jié)合理解文章內(nèi)容,本文屬于收集文,非原創(chuàng),但絕對(duì)干貨!值!得!一!贊!與收藏。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79838.html

相關(guān)文章

  • Angular directive 實(shí)例詳解

    摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 準(zhǔn)備代碼,會(huì)在實(shí)例中用到 var app = angular.module(app, []); angular指令定義大致如下 app.directive(directiveName, functi...

    Jiavan 評(píng)論0 收藏0
  • Angular directive 實(shí)例詳解

    摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 準(zhǔn)備代碼,會(huì)在實(shí)例中用到 var app = angular.module(app, []); angular指令定義大致如下 app.directive(directiveName, functi...

    mengera88 評(píng)論0 收藏0
  • angular 指令詳解(一)compile與link

    摘要:實(shí)例元素及實(shí)例屬性都會(huì)作為參數(shù)傳遞到函式函式關(guān)連於此實(shí)例的實(shí)例元素實(shí)例元素的屬性結(jié)論到目前為止,但愿你有清楚的理解關(guān)于及之間的差異。 原文地址:https://987.tw/2014/09/03/ang... AngularJS directives是令人驚艷的。它允許你創(chuàng)造高度語(yǔ)意且可重復(fù)利用的元件。在某種意義上你可以認(rèn)為它是極致的web components先驅(qū)者。 有許多很棒的文...

    crossea 評(píng)論0 收藏0
  • angularJS directive用法詳解

    摘要:可選參數(shù),布爾值或者對(duì)象默認(rèn)值為,可能取值默認(rèn)值。布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 前言 最近學(xué)習(xí)了下angularjs指令的相關(guān)知識(shí),也參考了前人的一些文章,在此總結(jié)下。 歡迎批評(píng)指出錯(cuò)誤的地方。 Angularjs指令定義的API showImg(https://segmentfault.com/img...

    hlcc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<