真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Angular1.x自定義指令的示例分析

小編給大家分享一下Angular1.x自定義指令的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,江陵網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:江陵等地區(qū)。江陵做網(wǎng)站價格咨詢:18980820575

具體如下:

調(diào)用Module.directive方法,傳入指令名稱和工廠函數(shù),返回一個對象。

指令名稱中每個大寫字母會被認(rèn)為是屬性名中的一個獨立的詞,而每個詞之間是以一個連字符分隔的。

var myApp = angular.module('myApp', [])
  .directive("unorderedList", function () {
    return function(scope, element, attrs) {
    };
  });

返回鏈?zhǔn)胶瘮?shù)




  
  AngularJS Demo
  
  
  


  
    
      

Products

    
           
    
  

打破對數(shù)據(jù)屬性的依賴

設(shè)置一個元素屬性,用來動態(tài)第設(shè)置需要參加運(yùn)算的鍵。如果屬性名是以data-為前綴的,AngularJS會在生成傳給連接函數(shù)的屬性集合時移除這一前綴。也就是說data-list-property和list-property都會被表示為listProperty。

var data = scope[attrs['unorderedList']];
var propertyName = attrs['listProperty'];
if(angular.isArray(data)){
  var listElem = angular.element("

計算表達(dá)式

添加過濾器后,自定義指令被破壞了??梢宰屪饔糜?qū)傩灾诞?dāng)做一個表達(dá)式進(jìn)行計算。scope.$eval()接收兩個參數(shù):要計算的表達(dá)式和需要用于執(zhí)行該計算的任意本地數(shù)據(jù)。

listElem.append( angular.element('
  • ').text(scope.$eval(propertyName, data[i])) );
  • 處理數(shù)據(jù)變化

    
      
        Change Prices
      
    
    $scope.incrementPrices = function () {
      for(var i=0,len = $scope.products.length; i

    添加監(jiān)聽器

    if(angular.isArray(data)){
      var listElem = angular.element("
      ");   element.append(listElem);   for(var i=0, len=data.length; i');     listElem.append(itemElem);     var watchFn = function (watchScope) {       return watchScope.$eval(propertyName, data[i]);     };     scope.$watch(watchFn, function (newValue, oldValue) {       itemElem.text(newValue);     });   } }

    第一個函數(shù)(監(jiān)聽器函數(shù))基于作用域中的數(shù)據(jù)計算出一個值,該函數(shù)在每次作用域發(fā)生變化時都會被調(diào)用。如果該函數(shù)的返回值發(fā)生了變化,處理函數(shù)就會被調(diào)用,這個過程就像字符串表達(dá)式方式一樣。提供一個函數(shù)來監(jiān)聽,能夠從容地面對表達(dá)式中有可能帶有過濾器的數(shù)據(jù)值得情形。

    第二個監(jiān)聽器函數(shù)是針對$eval()計算的表達(dá)變化,來執(zhí)行回調(diào)函數(shù)的。

    以上代碼并不能正確顯示,涉及到for循環(huán)閉包問題。

    for(var i=0, len=data.length; i');
        listElem.append(itemElem);
        var index = i;
        var watchFn = function (watchScope) {
          return watchScope.$eval(propertyName, data[index]);
        };
        scope.$watch(watchFn, function (newValue, oldValue) {
          itemElem.text(newValue);
        });
      }());
    }

    或者

    (function (i) {
      var itemElem = angular.element('
  • ');   listElem.append(itemElem);   var watchFn = function (watchScope) {     return watchScope.$eval(propertyName, data[i]);   };   scope.$watch(watchFn, function (newValue, oldValue) {     itemElem.text(newValue);   }); })(i);
  • jqLite

    jqLite中element()、append()等方法的參數(shù)是HTML string or DOMElement。

    return function (scope, element, attrs) {
      var listElem = element.append("
      ");   for (var i = 0; i < scope.names.length; i++) {     listElem.append("
    1. ").append("").text(scope.names[i]);   } }

    上述添加的是字符串,最后添加只有scope.names中最后一條信息。

    return function (scope, element, attrs) {
      var listElem = angular.element("
      ");   element.append(listElem);   for (var i = 0; i < scope.names.length; i++) {     listElem.append(angular.element("
    1. ")         .append(angular.element("").text(scope.names[i])));   } }

    以上是“Angular1.x自定義指令的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


    新聞標(biāo)題:Angular1.x自定義指令的示例分析
    當(dāng)前鏈接:http://weahome.cn/article/ijejep.html

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部