大家好,我是IT修真院深圳分院第02期學員,一枚正直善良的web程序員。
今天給大家分享一下,修真院官網js任務9,深度思考中的知識點——怎么將分頁封裝成指令?
1.背景介紹
對于指令,可以把它簡單的理解成在特定DOM元素上運行的函數,指令可以擴展這個元素的功能。 例如,一些原生的指令如 ng-disabled , ng-if ,ng-repeat ,ng-click 等。ng-click可以讓一個元素能夠監聽click事件,并在接收到事件的時候執行AngularJS表 達式。正是指令使得AngularJS這個框架變得強大,并且在AngularJs我們可以自己通過directive來創造新的指令。
2.知識剖析
當在我們的項目中需要實現一些功能,比如,時間篩選、分頁的功能,我們最先想到的可能是先去網上找找看,有沒有相應的插件可以給我們直接拿來使用。但是插件代碼一般十分復雜,無法定位bug進行修改,也無法保證修改后不會出現別的bug,用起來可能不太順手。像一些實現簡單功能的插件,我們可以利用AngularJS中的directive自己寫一個指令,進行封裝,也可以方便以后重復使用。
3.常見問題
怎么將分頁封裝成指令?
4.解決方案
先了解一下DIRECTIVE自定義指令中都可以設置哪些選項?
app.directive('pagination', function() { return { restrict: String, priority: Number, terminal: Boolean, templateUrl: String, replace: Boolean or String, scope: Boolean or Object, transclude: Boolean, controller: String or function() { ... }, controllerAs: String, require: String, link: function() { ... }, compile: function() { ... } });
5.編碼實戰
6.擴展思考
分頁功能還可以怎么做?
7.更多討論
1.還可以用directive自定義指令封裝哪些插件
2.directive自定義指令中的scope作用和注意點
課后提問:
問:如果在一個頁面當中使用2個同一分頁插件,怎么避免沖突?
答:重新封裝,定義不同的數據模型,如$scope.showPage1 、$scope.maxPage1;$scope.showPage2、$scope.maxPage2;在不同地方引用不同數據模型,避免沖突。
8.參考文獻
參考一:AngularJS權威教程
參考二:Angular簡易分頁設計
9.視頻資料
今天的分享就到這里啦,歡迎大家點贊、轉發、留言、拍磚~
下期不見不散~