小編給大家分享一下怎么將angular-ui的圖片輪播組件封裝成一個指令,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、珠暉ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的珠暉網(wǎng)站制作公司在項目開發(fā)中我們經(jīng)常會遇到圖片輪播的功能點:
如果我們開發(fā)人員自己原生手寫,將會花費很多的時間,最終得不償失。
接下來就詳細(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
Slide {{slide.id}}
{{slide.text}}
Interval, in milliseconds:
Enter a negative number or 0 to stop the interval.
到此為止關(guān)于指令的封裝已經(jīng)完成,接下來是如何使用的問題:
(1)有一個頁面要用到此指令:(命名為test.html)
圖片的輪播
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" } } })
以上是“怎么將angular-ui的圖片輪播組件封裝成一個指令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。