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

詳解如何將angular-ui的圖片輪播組件封裝成一個指令

 更新時間:2017年05月09日 16:52:13   作者:你的一燈  
本篇文章主要介紹了如何將angular-ui的圖片輪播組件封裝成一個指令 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在項目開發(fā)中我們經(jīng)常會遇到圖片輪播的功能點:

如果我們開發(fā)人員自己原生手寫,將會花費(fèi)很多的時間,最終得不償失。

接下來就詳細(xì)說說如何使用angular-ui發(fā)熱圖片輪播模塊,并且將它寫成一個指令(便于復(fù)用)

一如既往的我們項目中使用時requireJS進(jìn)行js代碼的編譯

準(zhǔn)備工作:

 1):引入angularJS , ui-bootstrap-tpls-1.3.2(我使用的是1.3.2版本的)

第一步:自己寫一個指令(命名為picchange)

說明:指令控制器中的代碼都是angualr-ui官網(wǎng)上拷貝的(因為此文章的重點是如何將其封裝成指令,其他的不做重點)

指令的js代碼

define(['app'],function(myapp){
  myapp.directive('picchange',[function(){
    return {
      scope:{
        picurl:'=',
      },
      controller:['$scope',function($scope){
        $scope.myInterval = 5000;//輪播的時間間隔
        $scope.noWrapSlides = false;//是否循環(huán)輪播
        $scope.active = 0;//起始所顯示的圖片(0:下標(biāo)為0的圖片)
        var slides = $scope.slides = [];//用于存放圖片地址
        var currIndex = 0;
        $scope.addSlide = function() {
          var newWidth = slides.length + 1;
          slides.push({
            image: $scope.picurl[newWidth].imgUrl,//圖片的url
            text: $scope.picurl[newWidth].wordDes,//圖片的描述文字
            id: currIndex++
          });
        };
       //................隨機(jī)...........
        $scope.randomize = function() {
          var indexes = generateIndexesArray();
          assignNewIndexesToSlides(indexes);
        };
        for (var i = 0;i<$scope.picurl.length;i++) {
          $scope.addSlide();
        }
        // Randomize logic below
        function assignNewIndexesToSlides(indexes) {
          for (var i = 0, l = slides.length; i < l; i++) {
            slides[i].id = indexes.pop();
          }
        }
        function generateIndexesArray() {
          var indexes = [];
          for (var i = 0; i < currIndex; ++i) {
            indexes[i] = i;
          }
          return shuffle(indexes);
        }
        // http://stackoverflow.com/questions/962802#962890
        function shuffle(array) {
          var tmp, current, top = array.length;
          if (top) {
            while (--top) {
              current = Math.floor(Math.random() * (top + 1));
              tmp = array[current];
              array[current] = array[top];
              array[top] = tmp;
            }
          }
          return array;
        }
      }],
      templateUrl:'js/directives/picchange/picchange.html',//輪播的頁面
      link:function(s,e,attrs){
      },
    }
  }]);
});

好了上面的代碼都是拷貝來的,不做解釋

輪播模塊的html:(picchange.html),指令的html(這個沒啥理解的)

指令的html

<div>

  <div style="height: 305px;">

    <uib-carousel no-wrap="noWrapSlides" interval="myInterval" active="active">

      <uib-slide index="slide.id" ng-repeat="slide in slides track by slide.id">

        <img style="margin: auto;" ng-src="{{slide.image}}">

        <div class="carousel-caption">

          <h4>Slide {{slide.id}}</h4>

          <p>{{slide.text}}</p>

        </div>

      </uib-slide>

    </uib-carousel>

  </div>

  <div class="row">

    <div class="col-md-6">

      <button class="btn btn-info" type="button" ng-click="addSlide()">Add Slide</button>

      <button class="btn btn-info" type="button" ng-click="randomize()">Randomize slides</button>

      <div class="checkbox">

        <label>

          <input type="checkbox" ng-model="noWrapSlides">

          Disable Slide Looping

        </label>

      </div>

    </div>

    <div class="col-md-6">

      Interval, in milliseconds: <input class="form-control" type="number" ng-model="myInterval">

      <br>Enter a negative number or 0 to stop the interval.

    </div>

  </div>

</div>  

到此為止關(guān)于指令的封裝已經(jīng)完成,接下來是如何使用的問題:

(1)有一個頁面要用到此指令:(命名為test.html)

<p>圖片的輪播</p>

<div picurl="img" picchange=""></div><!--img是用來傳遞參數(shù)的--> 

test.html對應(yīng)的控制器:(idea_test_ctrl)

define(['app','directives/picchange/picchange'],function(myapp){
  myapp.controller('idea_test_ctrl',['$scope',function($scope){
    console.log("this is idea_test_ctrl 的控制器");
    $scope.img=[//img是一個對象,其中包含了圖片的地址,以及文字描述
      {imgUrl:'images/test/1.jpg',wordDes:'this is good pic'},
      {imgUrl:'images/test/2.jpg',wordDes:'這是一張很好看的圖片'},
      {imgUrl:'images/test/3.jpg',wordDes:'it is good pic'}
    ];

  }]);
});

這里給出我的路由配置,便于大家理解:

.state('home.ideas.test', {//(測試)

        url: '/test',

        views: {

          "part": {

            templateUrl: 'tpls/ideas/test.html',

            controller:"idea_test_ctrl"

          }

       }

 }) 

 到此已經(jīng)講解完;

ui-bootstrap的地址:http://angular-ui.github.io/bootstrap/versioned-docs/1.3.2/

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Angular 中 ngOnInit 和 constructor 使用場景

    詳解Angular 中 ngOnInit 和 constructor 使用場景

    最初學(xué)習(xí)Angular的時候總是搞不清楚ngOnInit和constructor的區(qū)別,現(xiàn)在我們來稍微理一下兩者之間的區(qū)別。
    2017-06-06
  • Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解

    Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解

    這篇文章主要為大家介紹了Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Angularjs中$http以post請求通過消息體傳遞參數(shù)的實現(xiàn)方法

    Angularjs中$http以post請求通過消息體傳遞參數(shù)的實現(xiàn)方法

    這篇文章主要介紹了Angularjs中$http以post請求通過消息體傳遞參數(shù)的方法,結(jié)合實例形式分析了$http使用post請求傳遞參數(shù)的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2016-08-08
  • Ubuntu系統(tǒng)下Angularjs開發(fā)環(huán)境安裝

    Ubuntu系統(tǒng)下Angularjs開發(fā)環(huán)境安裝

    本文主要介紹 Ubuntu系統(tǒng)下Angularjs開發(fā)環(huán)境安裝,這里詳細(xì)介紹了安裝步驟和注意事項,有在Ubuntu 環(huán)境下開發(fā)的朋友可以參考下
    2016-09-09
  • AngularJs bootstrap詳解及示例代碼

    AngularJs bootstrap詳解及示例代碼

    本文主要講解AngularJs bootstrap,這里整理了詳細(xì)的資料及簡單示例代碼幫助大家學(xué)習(xí)或者參考,有需要的小伙伴看下
    2016-09-09
  • Angular4學(xué)習(xí)之Angular CLI的安裝與使用教程

    Angular4學(xué)習(xí)之Angular CLI的安裝與使用教程

    網(wǎng)上很多教程過時,命令在angular4中不適用等等,所以下面這篇文章主要給大家介紹了關(guān)于Angular4學(xué)習(xí)之Angular CLI的安裝與使用教程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • angular2使用簡單介紹

    angular2使用簡單介紹

    Angular2開發(fā)者預(yù)覽版出來已有一段時間,這個以速度與移動性能為目的的框架到底如何,今天我們來結(jié)合官網(wǎng)的demo嘗試一下。
    2016-03-03
  • 淺談Angular4中常用管道

    淺談Angular4中常用管道

    本篇文章主要介紹了Angular4中常用管道,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Angular中使用響應(yīng)式表單的詳細(xì)步驟

    Angular中使用響應(yīng)式表單的詳細(xì)步驟

    Angular提供了兩種處理表單的方式模板驅(qū)動表單和響應(yīng)式表單(也稱為模型驅(qū)動表單),使用模板驅(qū)動表單時,模板指令被用來構(gòu)建表單的內(nèi)部表示,在本文中,您探討了如何將響應(yīng)式表單應(yīng)用于一個示例 Angular 應(yīng)用程序
    2024-02-02
  • AngularJS 面試題集錦

    AngularJS 面試題集錦

    本文主要介紹AngularJS的面試題資料整理,這里整理了相關(guān)面試題的資料,幫助大家學(xué)習(xí)理解AngularJS的知識,有興趣的小伙伴可以參考下
    2016-09-09

最新評論

贡山| 介休市| 理塘县| 德阳市| 大余县| 江孜县| 湘潭县| 集安市| 伊川县| 乡宁县| 滦南县| 建湖县| 来宾市| 嘉峪关市| 龙泉市| 崇信县| 铁岭市| 财经| 平原县| 桃江县| 沐川县| 金沙县| 崇信县| 长垣县| 宜春市| 东乌| 泽库县| 祁门县| 广宗县| 吉林市| 西充县| 保定市| 临澧县| 永康市| 辽阳市| 宽甸| 富阳市| 龙胜| 重庆市| 贡嘎县| 全南县|