AngularJS: рдЫрдБрдЯрд╛рдИ, рдЫрд╛рдирдиреЗ рдФрд░ рдкреЗрдЬрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рддрд╛рд▓рд┐рдХрд╛

рдпрд╣ рдХреНрдпрд╛ рд╣реИ


рдпрд╣ рдПрдХ рдЕрдиреНрдп AngularJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЫрдВрдЯрд╛рдИ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рдкреГрд╖реНрдард╛рдВрдХрди рдЖрджрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдмреЗрд╢рдХ, рдХрдИ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди ( 1 , 2 , 3 , 4 , 5 ) рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реБрдПред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░рд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореБрдЭреЗ AngularJS рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛, рдФрд░ рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕рдХреА рдЕрджреНрднреБрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ: рд╕реНрд░реЛрдд рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдХрдВрдШреА" рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рдо рдЬрд┐рддрдирд╛ рдЪрд╛рд╣реЗрдВ рдЙрддрдирд╛ рд╕реБрдВрджрд░ рдирд╣реАрдВ; рдореИрдВрдиреЗ рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрдм рд╕реЗ рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рд╕рдордп рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЖрдкрдХреА рд╕рд▓рд╛рд╣, рд╕реБрдЭрд╛рд╡ рдФрд░ рдЗрдЪреНрдЫрд╛рдУрдВ рдХреА рднреА рдЙрдореНрдореАрдж рд╣реИред рдлрд┐рд░ рднреА, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рднреА-рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рдЧрд┐рддреБрдм рд╕реНрд░реЛрдд , рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдг ред

рдХрд┐рд╕ рд▓рд┐рдП?




рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛


<div id="testApp"> <!-- ,      --> <solo-table items-on-page = "10"> <!--       JSON,  --> <div solo-table-data> [{ "id": 1, "name": "Alvah Gleason", "address": "58707 Ophelia FieldEast Lorena, LA 89754-9301", "year": "1981" }, ......] </div> <!--         --> <div> Page <[pager.currentPage]> of <[pager.foundPages]>. Total items: <[pager.found]> </div> <!--   --> <table class="table table-striped table-bordered" > <thead> <tr> <th>Id</th> <th>Year</th> <th>Name</th> <th>Address</th> </tr> </thead> <!--     --> <tr ng-repeat="item in filtered = (original)" > <td><[item.id]></td> <td><[item.year]></td> <td><[item.name]></td> <td><[item.address]></td> </tr> </table> <!--   --> <div> <a href="" ng-click="gotoFirstPage()">First page | </a> <a href="" ng-click="gotoPrevPage()"> тЖРprev | </a> <a href="" ng-click="gotoNextPage()">next тЖТ | </a> <a href="" ng-click="gotoLastPage()">Last page </a> </div> </solo-table> </div> <script> //   ,    AngularJS  //     example,     testApp, //        AppFactory("testApp", "example", ["solo.table"]); </script> 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛, рдХреЛрдб {{}} рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рд┐рдВрдЯреИрдХреНрд╕ <[]> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдпрд╛ рд╕рднреА рдореЗрдВ рдПрдкрд┐рдлреИрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрд╢реА рдХреЛрдгреАрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдирд┐рдпреЛрдЧ рд╕рдВрд╣рд┐рддрд╛
 /** *   Angular    . *       . * * @param elementId ID DOM-,     * @param appName   ( ) * @param modules  ,    * @constructor */ var AppFactory = function(elementId, appName, modules) { 'use strict'; if (!modules) modules = []; var el = document.getElementById(elementId); angular.module(appName, modules).config([ /** * ..  Smarty,   {{  }}  , * ,  <[  ]> */ "$interpolateProvider", function($interpolateProvider){ $interpolateProvider.startSymbol('<['); $interpolateProvider.endSymbol(']>'); } ]); modules.push(appName); angular.bootstrap(el, modules); }; 



рд╕реНрддрдВрдн рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ


рдпрджрд┐ рдЖрдк рдореЗрдХ-рд╕реЙрддреНрд░рдмрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЫрдВрдЯрдиреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
 <solo-table items-on-page = "10" make-sortable> 

2 рдореЛрдб рд╣реИрдВ:
ASC + DESC - рдЕрд╡рд░реЛрд╣реА рдпрд╛ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
 <thead> <tr> <!--   ,    ,    sort-by='_' --> <th sort-by='id'>Id</th> <th sort-by='name'>Name</th> <th>Address</th> </tr> </thead> 

DEFAULT + ASC + DESC - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореВрд▓реНрдп рдореЗрдВ рдХрдореА рдпрд╛ рд╡реГрджреНрдзрд┐ред "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ" - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЖрд╡реЗрджрди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЙрд▓рдо рд╢реАрд░реНрд╖рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЖрдк рдЗрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕реЗ 3 рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЙрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп "3" рдХреЛ рдореЗрдХ-рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ:
 <solo-table items-on-page = "10" make-sortable="3"> 

рдФрд░ рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╕реНрддрдВрдн рдХреЛ рдХрд┐рд╕реА рджрд┐рд╢рд╛ рдореЗрдВ рддреБрд░рдВрдд рдЫрд╛рдВрдЯрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд╕реЙрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЙрд▓рдо рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдЕрднреА рдХреЗ рд▓рд┐рдП):
 <th sort-by='name' default-sort="asc">Name</th> 

рд╣реЗрдбрд░ рдореЗрдВ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CSS, well, рдпрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ
рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб
 .solo-table-sort-asc > .solo-column-arrow { position: relative; top: 10px; margin-left: 5px; border-color: black transparent; border-style: solid; border-width: 5px 5px 0px 5px; height: 0px; width: 0px; } .solo-table-sort-desc > .solo-column-arrow { position: relative; top: -10px; margin-left: 5px; border-color: black transparent; border-style: solid; border-width: 0px 5px 5px 5px; height: 0px; width: 0px; } .solo-table-column-cursor { cursor: pointer; } 


рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд░реНрд╖ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреЗрд╡рд▓ рдЙрди рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрд╖ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╡рд░реНрд╖ рдкреБрд░рд╛рдирд╛ рдлрд╝реАрд▓реНрдб рд╣реИ (рдЙрджрд╛рд╣рд░рдг # 5 рджреЗрдЦреЗрдВ)ред

 <script> //     angular.module("myFilters", []) //    ,    year   .filter("older", function(){ return function(items, search){ if (!search) return items; search = parseInt(search); var test = function(el, idx, array){ return el.year > search; }; return items.filter(test); }; }); //     AppFactory("testApp", "example", ["solo.table", "myFilters"]); </script> 

рдФрд░ рдЗрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдореЗрдВ рднреА рдЬреЛрдбрд╝реЗрдВ, рдЬрд╣рд╛рдБ рдлрд╝рд┐рд▓реНрдЯрд░рдореЙрдбрд▓ рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдореЙрдбрд▓ рдХрд╛ рдирд╛рдо рд╣реИ:
 <tr ng-repeat="item in filtered = (original | older:filterModel)" > 

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рдирд╛рдо рдФрд░ рдкрддрд╛ рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг # 6 рджреЗрдЦреЗрдВ):
 <tr ng-repeat="item in filtered = (original | filterByFields:filterModel:['name', 'address'])" > 

рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ



рдХреБрдЫ рдФрд░?


рд╣рд╛рдВред рдпрд╣ рд╕рдм AngularJS рд╕рдВрд╕реНрдХрд░рдг 1.1.5 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд░реВрд╕реА рдкрд╛рда рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВред рдкреНрд░рд╢реНрди, рд╕реБрдЭрд╛рд╡ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рдорджрдж рд╕реНрд╡рд╛рдЧрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

Source: https://habr.com/ru/post/In197646/


All Articles