国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Angularjs學習筆記指令

LeexMuller / 1382人閱讀

摘要:自定義指令中有很多內置指令,一般都是以開頭的比如等等。本文介紹的自定義指令的用法。該參數的意思是替換指令的內容,更改上面的例子。將屬性綁定到父控制器的域中學習概念多指令中的參數中增加了的值和的點擊函數。

自定義指令

angularjs中有很多內置指令,一般都是以ng開頭的;比如:ng-app,ng-click,ng-repeat等等。本文介紹angularjs的自定義指令的用法。

指令的定義

首先在html標簽處設置ng-app的屬性值,然后在js文件中就可以調用angular.module得到一個module,最后就可以用module.directive定義一個指令。代碼如下:

html文件




    
    directive
    
    



    

js文件

var app = angular.module("directive",[]);
app.directive("myDirective",function(){
   return {
       restrict:"A",
       require:true,
       template:"hello angular",
   };
});

這個例子只使用了directive的最簡單的參數配置,下面是一個詳細的參數配置列表

app.directive("myDirective", function factory(injectables) {
    return {
        restrict: string,//指令的使用方式,包括標簽,屬性,類,注釋
        priority: number,//指令執行的優先級
        template: string,//指令使用的模板,用HTML字符串的形式表示
        templateUrl: string,//從指定的url地址加載模板
        replace: bool,//是否用模板替換當前元素,若為false,則append在當前元素上
        transclude: bool,//是否將當前元素的內容轉移到模板中
        scope: bool or object,//指定指令的作用域
        controller: function controllerConstructor($scope, $element, $attrs, $transclude){...},//定義與其他指令進行交互的接口函數
        require: string,//指定需要依賴的其他指令
        link: function postLink(scope, iElement, iAttrs) {...},//以編程的方式操作DOM,包括添加監聽器等
        compile: function compile(tElement, tAttrs, transclude){
            return: {
                pre: function preLink(scope, iElement, iAttrs, controller){...},
                post: function postLink(scope, iElement, iAttrs, controller){...}
            }
        }
    };
});

下面介紹幾個常用的參數

restrict

四個值"A","E","C","M",分別代碼屬性,標簽,類,注釋,如下:

restrict:"A"   
restrict:"E" restrict:"C"
restrict:"M"

只測試了A和E的值,感興趣的朋友可以測試一下其他。

template 和 templateUrl

這兩個參數只需要設置一個就行。

transclude

該參數的意思是替換指令的內容,更改上面的例子。html更改部分

hello angular

js更改部分

 app.directive("myDirective",function(){
    return {
        restrict:"A",
        require:true,
        transclude:true,//增加transclude參數的設置
        template:"
",//將指令的內容替換到span標簽下 }; });
scope
false               默認值。使用父作用域作為自己的作用域
true                新建一個作用域,該作用域繼承父作用域
javascript對象       

當scope為javascript對象時,鍵值對的形式定義。直接看例子吧!
html:




    
    directive
    
    


    
{{text}}

js:

var app = angular.module("directive",[]);
app.directive("myDirective",function(){
    return {
        restrict:"A",
        template:"
{{mytitle}}
", require:true, replace:true, transclude:true, //將etitle屬性綁定到父控制器的scope域中 scope:{ mytitle:"=etitle" }, } }); app.controller("directive",function($scope){ $scope.title = "學習"; $scope.text = "angular js概念多"; });
link

link的值是一個function,一般用在在dom上綁定動作的。請看下面實現的一個折疊面板的例子。




    
    directive
    
    


    
{{text}}
var app = angular.module("directive",[]);
app.directive("expander",function(){
    return {
        restrict:"E",
        template:"
{{mytitle}}
", require:true, replace:true, transclude:true, //將etitle屬性綁定到父控制器的scope域中 scope:{ mytitle:"=etitle" }, link: function(scope,element,attr,accordionCtrl){ scope.showText = false; scope.toggleText = function(){ scope.showText = ! scope.showText; } } } }); app.controller("directive",function($scope){ $scope.title = "angular 學習"; $scope.text = "angular js概念多"; });

expander指令中的link參數中增加了showText的值和toggleText的點擊函數。

最后,再看一個多個折疊面板的例子




    
    directive
    
    


    
{{expander.text}}

ng-repeat便利expanders的所有元素

var app = angular.module("directive",[]);
app.directive("expander",function(){
    return {
        restrict:"E",
        template:"
{{mytitle}}
", require:"^?accordion", replace:true, transclude:true, //將etitle屬性綁定到父控制器的scope域中 scope:{ mytitle:"=etitle" }, link: function(scope,element,attr,accordionCtrl){ scope.showText = false; accordionCtrl.addExpander(scope); scope.toggleText = function(){ scope.showText = ! scope.showText; accordionCtrl.getOpened(scope); } } } }); app.controller("directive",function($scope){ $scope.expanders = [ {title:"angular",text:"angular js概念多"}, {title:"react",text:"react + reduce + ui路由機制"} ]; }); app.directive("accordion",function(){ return { restrict:"E", template:"
", replace:true, transclude:true, controller:function(){ var expanders = []; this.getOpened = function(selectExpander){ angular.forEach(expanders,function(e){ if (selectExpander != e){ e.showText = false; } }); } this.addExpander = function(e){ expanders.push(e); } } } });

demo源碼地址

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79163.html

相關文章

  • Angularjs學習筆記指令

    摘要:自定義指令中有很多內置指令,一般都是以開頭的比如等等。本文介紹的自定義指令的用法。該參數的意思是替換指令的內容,更改上面的例子。將屬性綁定到父控制器的域中學習概念多指令中的參數中增加了的值和的點擊函數。 自定義指令 angularjs中有很多內置指令,一般都是以ng開頭的;比如:ng-app,ng-click,ng-repeat等等。本文介紹angularjs的自定義指令的用法。 指令...

    Cristic 評論0 收藏0
  • angularjs學習筆記指令a,ngHref

    摘要:點擊我啊當屬性為空時,點擊的時候頁面不會刷新了,我們再也不需要這樣寫了點擊我啊一般和指令結合使用點擊我啊你點擊我了一般和標簽結合使用。使用了就就可以避免出現這種問題。如果鏈接中有表達式,就使用代替 a 點擊我啊 當href屬性為空時,點擊的時候頁面不會刷新了,我們再也不需要這樣寫了 點擊我啊 一般和ng-click指令結合使用 #html 點擊我啊 #scr...

    Channe 評論0 收藏0
  • AngularJS學習筆記(2) --- 指令參數和scope綁定策略

    摘要:引言指令可以說是的核心,而其開發也是比較困難的,本文主要介紹指令的一些參數和的綁定策略。指令執行的優先級,用于多個指令同時作用于同一個元素時。改變父會影響指令,而改變指令不會影響父。在父和指令之間建立雙向綁定。 引言 指令(Directive)可以說是 AngularJS 的核心,而其開發也是比較困難的,本文主要介紹指令的一些參數和scope的綁定策略。 參數 從 AngularJS ...

    AndroidTraveler 評論0 收藏0
  • angularjs學習筆記指令input

    摘要:新增的日期選擇器。類型必填必填最小長度最大長度正則匹配正則匹配更新觸發即使沒有使用校驗屬性,只要數據不符合格式,就會被更新成。 input[text] input一般和ngModel結合使用來實現雙向綁定,同時angular提供了很多表單校驗的指令 required 必填 ngRequired 必填(ngRequired可以控制是否是必填校驗) ngMinlength 最小長度...

    princekin 評論0 收藏0
  • angularjs學習筆記—事件指令

    摘要:適用標簽所有觸發條件單擊適用標簽所有觸發條件雙擊適用標簽觸發條件失去焦點適用標簽觸發條件獲取焦點適用標簽觸發條件更新輸入框的內容改變并不代表的值更新。如果按一個鍵很久才松開,發生的事件為。 ngClick 適用標簽:所有觸發條件:單擊 #html click me click me #script angular.module(learnModule, []) ...

    Lemon_95 評論0 收藏0

發表評論

0條評論

LeexMuller

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<