亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

AngularJS優雅的自定義指令

2019-11-20 09:34:29
字體:
來源:轉載
供稿:網友

學習要點
 •為什么使用指令
 •創建自定義指令
•使用jqLite工作 

一、為什么使用自定義指令
NG內置了許多自定義指令,但是它們有時并不能滿足你的要求,這是需要我們創建自定義屬性。

二、自定義指令
接下來,我們來做一個小案例,當鼠標單擊加價后,列表項自動遞增,當然列表也是通過指令自動添加的,它本就是一個空的div

<!DOCTYPE><!-- use module --><html ng-app="exampleApp"><head>  <title>Angluar test</title>  <meta charset="utf-8"/>  <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">  <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css"></head><body>  <dlv class="panel panel-default" ng-controller="defaultCtrl">    <div class="panel-heading">       <h3>Products</h3>    </div>    <div class="panel-body">      <!-- 點擊加價,價格遞增 -->      <button type="button" class="btn btn-primary" ng-click="incrementPrices()">加價</button>    </div>    <div class="panel-body">      <!-- 將products數據以一種無序列表的形式展示 -->      <!-- list-property="price | currency" 列表項單位本地化 -->      <div unorderlist="products" list-property="price | currency"></div>    </div>  </dlv><script type="text/javascript" src="js/angular.min.js"></script><script type="text/javascript">angular.module("exampleApp", [])  .directive("unorderlist", function () {    // scope 作用域    // element 應用該指令的元素    // attrs 使用該指令的元素的屬性    return function (scope, element, attrs) {      // attrs['unorderlist'] 獲取unorderlist屬性值,這里為products      // 獲取數據模型值,這里為scope.products      var data = scope[attrs['unorderlist']];      // 創建一個<ul>標簽元素      var ul = angular.element("<ul>");      // 在應用該指令的元素中添加<ul>      element.append(ul);      // 獲取listProperty屬性值,這里為price | currency      var expression = attrs['listProperty'];      // 判斷是否為數組      if (angular.isArray(data)) {        // 遍歷數據模型scope.products        for (var i = 0; i < data.length; i++) {          // 添加閉包,將i傳遞進去          (function (index) {            // 創建一個<li>標簽元素            var li = angular.element("<li>");            // 將<li>標簽添加到<ul>中            ul.append(li);            // 監聽器函數,用$eval計算表達式和data[index]的值            var watcherFn = function (watchScope) {              return watchScope.$eval(expression, data[index]);            }            // 添加$watch監聽器監聽作用域的變化            scope.$watch(watcherFn, function (newValue, oldValue) {              // 更新li的值              li.text(newValue);            })          })(i);        }      }    }  })  .controller("defaultCtrl", function ($scope) {    // 數據模型    $scope.products = [      { name: "Apples", category: "Fruit", price: 1.20, expiry: 10 },      { name: "Bananas", category: "Fruit", price: 2.42, expiry: 7 },      { name: "Pears", category: "Fruit", price: 2.02, expiry: 6 }    ];    // 遞增價格    $scope.incrementPrices = function () {      for (var i = 0; i < $scope.products.length; i++) {        $scope.products[i].price++;      }    }  })</script></body></html>

解析:
第一步:創建控制器,添加數據模型products和遞增價格incrementPrices()方法
第二步:自定義unorderlist標簽,該標簽的作用是:通過作用域數據模型的值,將其值以無序列表的方式展示出來
第三部:并且在單擊加價按鈕時,無序列表的值會依次遞增

這里寫圖片描述

三、使用jqLite工作
NG內置了jqLite,它是JQuery的縮小版

<!DOCTYPE><!-- use module --><html ng-app="exampleApp"><head>  <title>Angluar test</title>  <meta charset="utf-8"/>  <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">  <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css"></head><body>  <dlv class="panel panel-default">    <!-- 使用自定義指令 -->    <ol dome-directive>      <li>Apples</li>      <ul>        <li>Bananas</li>        <li>Cherries</li>        <li>Oranges</li>      </ul>      <li>Pears</li>      <li>Oranges</li>    </ol>  </dlv><script type="text/javascript" src="js/angular.min.js"></script><script type="text/javascript">angular.module("exampleApp", [])  .directive("domeDirective", function () {    return function (scope, element, attrs) {      // 找出element元素下所有的li,這里的element是調用者<ol>      var items = element.find("li");      // 要所有的li的font-weight為bold      items.css("font-weight", "bold");      // 遍歷li, 值為Oranges的字體顏色為red,其余為green      for (var i = 0; i < items.length; i++) {        if (items.eq(i).text() == "Oranges"){          items.eq(i).css("color", "red");        } else {          items.eq(i).css("color", "green");        }      }      // 打印出li的長度和字體顏色      console.log("Items length : " + items.length);      console.log("Color: " + items.css("color"));    }  })</script></body></html>

解析:
第一步:自定義控制器,定義數據模型names
第二步:自定義指令,功能是將使用指令的元素下的所有li找出,并且更加值的不同賦給字體不同的顏色
第三步:在視圖中調用并且使用指令

這里寫圖片描述

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品18videosex性欧美| 亚洲一区亚洲二区| 欧美极品美女电影一区| 日韩av在线影视| 国产精品无码专区在线观看| 国内精品中文字幕| 成人妇女淫片aaaa视频| 色老头一区二区三区在线观看| 成人午夜黄色影院| 国产成人精品电影久久久| 欧美亚洲视频在线看网址| 亚洲欧美中文字幕| 亚洲欧洲在线免费| 久久久精品国产一区二区| 91爱视频在线| 欧美丰满少妇xxxxx做受| 欧美日韩在线一区| 91禁国产网站| 色噜噜狠狠狠综合曰曰曰| 国产精品入口日韩视频大尺度| 欧美激情在线视频二区| 久久久女人电视剧免费播放下载| 日韩精品中文字幕在线观看| 国产日产欧美a一级在线| 亚洲自拍偷拍在线| 亚洲天堂男人的天堂| 欧美性xxxxx| 成人激情电影一区二区| 亚洲欧美在线播放| 国产日韩中文在线| 国产伊人精品在线| 91夜夜揉人人捏人人添红杏| 国产精品夫妻激情| 日韩欧美中文字幕在线播放| 欧美亚洲国产视频| 国产精品一区二区三区免费视频| 久久福利网址导航| 亚洲成人精品视频| 中文字幕日韩在线视频| 69视频在线播放| 国产97色在线|日韩| 日韩在线视频中文字幕| 青青久久aⅴ北条麻妃| 91久久综合亚洲鲁鲁五月天| 亚洲综合国产精品| 国产在线观看不卡| 国产精品久久久av| 久久亚洲精品网站| 黄色成人av在线| 国产一区二区三区在线| 欧美日韩国产精品一区| 欧美激情一二三| 日韩av在线不卡| 欧美日韩另类视频| 欧美成人免费视频| 在线观看欧美视频| 91在线精品视频| 欧美专区日韩视频| 亚洲精品成人久久电影| 中文字幕自拍vr一区二区三区| 亚洲精品国产精品久久清纯直播| 日韩精品在线私人| 久久国产精品99国产精| 中文字幕九色91在线| 国产香蕉97碰碰久久人人| 国产91色在线免费| 欧美高跟鞋交xxxxhd| 亚洲老板91色精品久久| 欧美日韩在线免费| 亚洲精品国产精品国产自| 精品成人久久av| 久久久精品亚洲| 亚洲天堂网在线观看| 中文字幕亚洲无线码在线一区| 国产精品网红福利| 成人av.网址在线网站| 亚洲国产精品系列| 日韩精品在线视频美女| 81精品国产乱码久久久久久| 亚洲精品电影网站| 欧美一级电影在线| 九色精品免费永久在线| 亚洲欧美日韩天堂| 亚洲系列中文字幕| 青青久久aⅴ北条麻妃| 欧美最猛性xxxxx(亚洲精品)| 在线看福利67194| 一本色道久久综合狠狠躁篇怎么玩| 成人a在线视频| 91精品久久久久久| 国产在线999| 成人av在线网址| 91性高湖久久久久久久久_久久99| 91在线观看免费网站| 日韩电影中文 亚洲精品乱码| 91牛牛免费视频| 国产精品第七影院| 欧美不卡视频一区发布| 欧美理论电影网| 在线看日韩欧美| 色婷婷亚洲mv天堂mv在影片| 精品夜色国产国偷在线| 久久亚洲精品一区二区| 欧美国产日韩二区| 国产日本欧美在线观看| 国产精品jvid在线观看蜜臀| 亚洲精品98久久久久久中文字幕| 亚洲日韩欧美视频一区| 久久中文字幕一区| 国产精品视频在线播放| 亚洲精品欧美日韩专区| 久久精品91久久久久久再现| 日韩av免费在线播放| 国产精品视频色| 久久国产精品电影| 亚洲精品第一页| 亚洲国产精品va在线观看黑人| 日韩精品视频在线播放| 日本老师69xxx| 欧美电影免费观看| 久久天堂电影网| 精品国产视频在线| 亚洲视频在线播放| 92国产精品久久久久首页| 欧美一级片免费在线| 国产成人精彩在线视频九色| 97香蕉久久超级碰碰高清版| 4p变态网欧美系列| 欧美亚洲一区在线| 日韩精品高清视频| 欧美成人中文字幕| 国产一区玩具在线观看| 亚洲韩国青草视频| 91沈先生在线观看| 黑人巨大精品欧美一区二区免费| 中文一区二区视频| 91po在线观看91精品国产性色| 国产午夜精品视频| 亚洲福利视频二区| 国产丝袜精品第一页| 亚洲综合在线中文字幕| 91精品在线国产| 亚洲欧美国产日韩中文字幕| 欧美黑人极品猛少妇色xxxxx| 一区二区在线免费视频| 久久6精品影院| 亚洲一区二区三区sesese| 91精品综合久久久久久五月天| 97免费视频在线播放| 日本91av在线播放| 亚洲第一区第二区| 久久伊人精品一区二区三区| 久久久久久噜噜噜久久久精品| 欧美视频中文字幕在线| 色偷偷av亚洲男人的天堂| 欧美黑人巨大精品一区二区| 亚洲福利视频二区| 国产精品一区二区电影| 欧美性xxxx极品高清hd直播| 国产91在线播放精品91| 久久伊人精品一区二区三区| 亚洲人高潮女人毛茸茸| 亚洲人成啪啪网站| 亚洲精品一区中文字幕乱码|