最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJS ngModel實現(xiàn)指令與輸入直接的數(shù)據(jù)通信

 更新時間:2016年09月21日 09:45:30   作者:MakingChoice  
這篇文章主要介紹了AngularJS ngModel實現(xiàn)指令與輸入直接的數(shù)據(jù)通信的相關(guān)資料,需要的朋友可以參考下

首先來看一下效果,在拖動input[range]的時候,下面的動畫會隨著拖動而發(fā)生改變,利用的原理就是ngModel實現(xiàn)的通信。實現(xiàn)的原理就是通過在指令中引入^ngModel來實現(xiàn)指令內(nèi)部與外部之間的通信。

下面有幾個點:

1、$formatters中push進去的函數(shù)實現(xiàn)modelValue轉(zhuǎn)成valeuValue。
2、$render方法實現(xiàn)把viewValue中的值渲染到模板中。
3、$setViewValue實現(xiàn)的是更新模板中的viewValue值。
4、$parsers中push進去的方法實現(xiàn)valueValue轉(zhuǎn)成modelValue。

<!DOCTYPE html>
<html lang="en" ng-app="rangeApp">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<script src="lib/angular.min.js" type="text/javascript"></script>
<script src="lib/jquery-2.1.4.min.js" type="text/javascript"></script>
<style>
  div{
    position: absolute;
  }
  .ani{
    width: 200px;
    height: 200px;
    border: 1px solid aqua;
    position: absolute;
    top: 100px;
    left: 200px;
    -webkit-transform: rotateX(120deg);
    -moz-transform: rotateX(120deg);
    -ms-transform: rotateX(120deg);
    -o-transform: rotateX(120deg);
    transform: rotateX(20deg);
  }
  .active{
    background: red;
  }
  ::-webkit-slider-runnable-track {
    border: 1px solid #a0b3d6;
    background: #f0f3f9;
  }
  ::-webkit-slider-thumb {
    outline: 1px dotted #a0b3d6;
    background-color: #34538b;
  }
  ::-webkit-slider-runnable-track:hover {
    background-color: #cad5eb;
  }


  ::-moz-range-track {
    border: 1px solid #a0b3d6;
    height: 20px;
    background: #f0f3f9;
  }
  ::-moz-range-thumb {
    background: #34538b;
    height: 30px;
  }

  ::-ms-fill-lower { background: orange; }
  ::-ms-fill-upper { background: green; }
  ::-ms-thumb { background: red; }
  ::-ms-ticks-before { display: block; color: black; }
  ::-ms-ticks-after { display: block; color: blue; }
  ::-ms-track { padding: 5px; }
  ::-ms-tooltip { display: none; /* 數(shù)值提示 只能是display或visibility */ }
</style>
<body ng-controller="rangeCon">
<input type="range" ng-model="rangeModel"/>

<animate-span ng-model="rangeModel"></animate-span>
</body>
<script>
  var app=angular.module("rangeApp",[])
      .controller("rangeCon",["$scope", function ($scope) {
        $scope.rangeModel=30;
      }])
      .directive("animateSpan", function () {
        return{
          restrict:'EA',
          replace:true,
          scope:{},
          require:'^ngModel',
          template:'<div><span class="ani" ng-model="dis">{{dis}}</span></div>',
          link: function (scope,element,attr,ngModelController) {
            var rotateX= function (modelValue) {
              var modelValue=parseInt(modelValue)||0;
              var value="rotateX("+modelValue*3+"deg)";
              return {
                dis:value
              };
            };
            var rotateY= function (modelValue) {
              var modelValue=parseInt(modelValue)||0;
              var value="rotateY("+modelValue*3+"deg)"
              return {
                dis:value
              }
            };
            var rotateZ= function (modelValue) {
              var modelValue=parseInt(modelValue)||0;
              var value="rotateZ("+modelValue*3+"deg)";
              return {
                dis:value
              }
            };
            //scope.dis=30;
            ngModelController.$formatters.push(rotateZ);//modelValue到viewValeu之間的通信。
            ngModelController.$render= function () {//把viewModel渲染到模板中
              scope.dis=ngModelController.$viewValue.dis;
              $(element).find("span").css("-webkit-transform",scope.dis)
            };
            scope.$watch('dis', function () {//更新模板上的viewValue
              ngModelController.$setViewValue({
                dis:scope.dis
              })
            })
          }
        }
      })
</script>
</html>

以上就是對AngularngModel實現(xiàn)指令與輸入直接的數(shù)據(jù)通信的資料整理,后續(xù)繼續(xù)補充相關(guān)資料,謝謝大家對本站的支持!

相關(guān)文章

  • AngularJs驗證重復(fù)密碼的方法(兩種)

    AngularJs驗證重復(fù)密碼的方法(兩種)

    本文給大家介紹angularjs驗證重復(fù)密碼的兩種方法,每種方法都有各自的優(yōu)缺點,大家可以根據(jù)需要選擇一種方法,具體內(nèi)容詳情大家通過本文詳細(xì)了解下吧
    2016-11-11
  • Angular8引入百度Echarts進行圖表分析的實現(xiàn)代碼

    Angular8引入百度Echarts進行圖表分析的實現(xiàn)代碼

    這篇文章主要介紹了Angular8引入百度Echarts進行圖表分析的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 深入淺析AngularJS中的一次性數(shù)據(jù)綁定 (bindonce)

    深入淺析AngularJS中的一次性數(shù)據(jù)綁定 (bindonce)

    這篇文章主要介紹了AngularJS中的一次性數(shù)據(jù)綁定 (bindonce)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • AngularJS中的路由使用及實現(xiàn)代碼

    AngularJS中的路由使用及實現(xiàn)代碼

    本篇文章主要介紹了AngularJS中的路由使用及實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 最新評論

    合川市| 酒泉市| 延庆县| 麟游县| 从江县| 涞水县| 浮山县| 德钦县| 格尔木市| 寿宁县| 穆棱市| 义乌市| 合山市| 宣恩县| 丰都县| 江阴市| 桓仁| 涞水县| 炉霍县| 和硕县| 浠水县| 吉林市| 清新县| 乌兰浩特市| 浠水县| 攀枝花市| 宁明县| 株洲县| 邓州市| 宣城市| 吉水县| 邵阳市| 南漳县| 屯门区| 儋州市| 闽清县| 永靖县| 手机| 韶山市| 庄河市| 四川省|