{"id":21531,"date":"2018-04-27T16:15:13","date_gmt":"2018-04-27T13:15:13","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=21531"},"modified":"2018-04-27T16:19:20","modified_gmt":"2018-04-27T13:19:20","slug":"angularjs-orderby-multiple-fields-example","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/","title":{"rendered":"AngularJS orderBy Multiple Fields Example"},"content":{"rendered":"<p>Hello readers, in this tutorial, we will learn how to implement and use the <em>orderBy<\/em> filter in the angular web applications.<\/p>\n<h2>1. Introduction<\/h2>\n<p><em>Angular<\/em> is a JavaScript MVC or Model-View-Controller framework developed by Google that lets developers build well structured, easily testable, and maintainable front-end applications. But before we start creating a real application using the angular library, let us see what the important parts of an angular application are.<br \/>\n[ulp id=&#8217;LXJcMJZXSsqGXYW8&#8242;]<\/p>\n<h4>1.1.1 Templates<\/h4>\n<p>In Angular, a <span style=\"text-decoration: underline;\">template<\/span> is an <code>HTML<\/code> with added markups. The angular library compiles the templates and renders the resultant <code>HTML<\/code> page.<\/p>\n<h4>1.1.2 Directives<\/h4>\n<p><span style=\"text-decoration: underline;\">Directives<\/span> are the markers (i.e. attributes) on a DOM element that tell angular to attach a specific behavior to that DOM element or even transform the DOM element and its children. Most of the directives in the angular library start with the <code>ng<\/code>. The directives consist of the following parts:<\/p>\n<ul>\n<li><code>ng-app<\/code>: The <code>ng-app<\/code> directive is a <em>starting point<\/em>. If the angular framework finds the <code>ng-app<\/code> directive anywhere in the <code>HTML<\/code> document, it bootstraps (i.e. initializes) itself and compiles the <code>HTML<\/code> template<\/li>\n<li><code>ng-model<\/code>: The <code>ng-model<\/code> directive binds an <code>HTML<\/code> element to a property on the <code>$scope<\/code> object. It also binds the values of angular application data to the <code>HTML<\/code> input controls<\/li>\n<li><code>ng-bind<\/code>: The <code>ng-bind<\/code> directive binds the angular application data to the <code>HTML<\/code> tags<\/li>\n<li><code>ng-controller<\/code>: The <code>ng-controller<\/code> directive specifies a controller in the HTML element. This controller will add behavior or support the data in that HTML element and its child elements<\/li>\n<\/ul>\n<h4>1.1.3 Expressions<\/h4>\n<p>An <span style=\"text-decoration: underline;\">expression<\/span> is like a JavaScript code usually wrapped inside the double curly braces such as <code>{{ expression }}<\/code>. Angular library evaluates the expression and produces a result.<\/p>\n<h3>1.2 What are Angular filters?<\/h3>\n<p>In an angular library, <span style=\"text-decoration: underline;\">filters<\/span> allow transforming the data to be displayed on the UI without changing the original format. Angular filters are implemented in the angular directives and expressions using the pipe character (i.e. <code>|<\/code>). Following is the basic syntax using the angular filter in an angular application.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Angular filter basic syntax<\/em><\/span><\/p>\n<pre class=\"brush:java; wrap-lines:false;\">{{ expression | filterName:parameter }}\r\n<\/pre>\n<h4>1.2.1 Order-by Filter<\/h4>\n<p>This filter sorts an array according to the specified condition, e.g. ascending or descending. Following is the syntax of using the <em>orderBy<\/em> filter in angular applications.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Syntax<\/em><\/span><\/p>\n<pre class=\"brush:java; wrap-lines:false;\">{{ orderBy_expression | orderBy : predicate_expression : reverse }}\r\n<\/pre>\n<p>These new APIs make developer&#8217;s life easier, really! But it would be difficult for a beginner to understand this without an example. Therefore, let us create a simple application using the <code>orderBy<\/code> filter.<\/p>\n<h2>2. AngularJS orderBy Multiple Fields Example<\/h2>\n<p>Here is a step-by-step guide for implementing the <code>orderBy<\/code> filter in the angular web applications.<\/p>\n<h3>2.1 Tools Used<\/h3>\n<p>We are using Eclipse Kepler SR2, JDK 8 and Maven. Having said that, we have tested the code against JDK 1.7 and it works well.<\/p>\n<h3>2.2 Project Structure<\/h3>\n<p>Firstly, let\u2019s review the final project structure if you are confused about where you should create the corresponding files or folder later!<\/p>\n<figure id=\"attachment_21532\" aria-describedby=\"caption-attachment-21532\" style=\"width: 287px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_structure_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21532\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_structure_guide_1.jpg\" alt=\"Fig. 1: Application Project Structure\" width=\"287\" height=\"324\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_structure_guide_1.jpg 287w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_structure_guide_1-266x300.jpg 266w\" sizes=\"(max-width: 287px) 100vw, 287px\" \/><\/a><figcaption id=\"caption-attachment-21532\" class=\"wp-caption-text\">Fig. 1: Application Project Structure<\/figcaption><\/figure>\n<h3>2.3 Project Creation<\/h3>\n<p>This section will show how to create a Java-based Maven project with Eclipse. In Eclipse Ide, go to <code>File -&gt; New -&gt; Maven Project<\/code>.<\/p>\n<figure id=\"attachment_21533\" aria-describedby=\"caption-attachment-21533\" style=\"width: 657px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21533\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_1.jpg\" alt=\"Fig. 2: Create Maven Project\" width=\"657\" height=\"690\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_1.jpg 657w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_1-286x300.jpg 286w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/a><figcaption id=\"caption-attachment-21533\" class=\"wp-caption-text\">Fig. 2: Create Maven Project<\/figcaption><\/figure>\n<p>In the New Maven Project window, it will ask you to select project location. By default, &#8216;Use default workspace location&#8217; will be selected. Just click on next button to proceed.<\/p>\n<figure id=\"attachment_21534\" aria-describedby=\"caption-attachment-21534\" style=\"width: 598px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_2.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21534\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_2.jpg\" alt=\"Fig. 3: Project Details\" width=\"598\" height=\"543\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_2.jpg 598w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_2-300x272.jpg 300w\" sizes=\"(max-width: 598px) 100vw, 598px\" \/><\/a><figcaption id=\"caption-attachment-21534\" class=\"wp-caption-text\">Fig. 3: Project Details<\/figcaption><\/figure>\n<p>Select the &#8216;Maven Web App&#8217; Archetype from the list of options and click next.<\/p>\n<figure id=\"attachment_21535\" aria-describedby=\"caption-attachment-21535\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_3.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21535\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_3.jpg\" alt=\"Fig. 4: Archetype Selection\" width=\"597\" height=\"541\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_3.jpg 597w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_3-300x272.jpg 300w\" sizes=\"(max-width: 597px) 100vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-21535\" class=\"wp-caption-text\">Fig. 4: Archetype Selection<\/figcaption><\/figure>\n<p>It will ask you to &#8216;Enter the group and the artifact id for the project&#8217;. We will enter the details as shown in the below image. The version number will be by default: <code>0.0.1-SNAPSHOT<\/code>.<\/p>\n<figure id=\"attachment_21536\" aria-describedby=\"caption-attachment-21536\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_4.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21536\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_4.jpg\" alt=\"Fig. 5: Archetype Parameters\" width=\"597\" height=\"538\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_4.jpg 597w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_guide_4-300x270.jpg 300w\" sizes=\"(max-width: 597px) 100vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-21536\" class=\"wp-caption-text\">Fig. 5: Archetype Parameters<\/figcaption><\/figure>\n<p>Click on Finish and the creation of a maven project is completed. If you see, it has downloaded the maven dependencies and a <code>pom.xml<\/code> file will be created. It will have the following code:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>pom.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml; wrap-lines:false;\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\r\n\t&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n\t&lt;groupId&gt;AngularOrderBy&lt;\/groupId&gt;\r\n\t&lt;artifactId&gt;AngularOrderBy&lt;\/artifactId&gt;\r\n\t&lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\r\n\t&lt;packaging&gt;war&lt;\/packaging&gt;\r\n&lt;\/project&gt;\r\n<\/pre>\n<p>Let\u2019s start building the application!<\/p>\n<h2>3. Application Building<\/h2>\n<p>Let\u2019s create an application to understand the basic building blocks of the <code>ng-click<\/code> directive in the angular library.<\/p>\n<h3>3.1 Load the AngularJS framework<\/h3>\n<p>Since it is a pure JavaScript framework, we should add its reference using the <code>&lt;script&gt;<\/code> tag.<\/p>\n<pre class=\"brush:js; wrap-lines:false;\">&lt;script type=\"text\/javascript\" src=\"resource\/js\/angular_v1.6.0.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<h3>3.2 Define the AngularJS application<\/h3>\n<p>Next, we will define the angular application using the <code>&lt;ng-app&gt;<\/code> and <code>&lt;ng-controller&gt;<\/code>directive.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>index.jsp<\/em><\/span><\/p>\n<pre class=\"brush:html; wrap-lines:false;\">&lt;div ng-app=\"app\" ng-controller=\"ctrl\"&gt;\r\n \t.....\r\n&lt;\/div&gt;\r\n<\/pre>\n<h3>3.3 Creating an AngularJS Controller<\/h3>\n<p>The JavaScript file i.e. <code>orderby.js<\/code> has a function which includes the <code>ctrl<\/code> function as the &#8220;<em>controller<\/em>&#8221; in the Model-View-Controller. The function will initialize a default planet list and the sorting order. Add the following code to this file:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>orderby.js<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">var app = angular.module(\"app\", []);\r\n\r\napp.controller(\"ctrl\", function($scope) {\r\n\r\n    $scope.orderProp = 'id'; \/\/ Set the default sort type\r\n    $scope.direction = false; \/\/ Set the default sort order\r\n\r\n    \/\/ Set the default planet_list\r\n    $scope.json_data = [{\r\n            \"id\": \"1\",\r\n            \"name\": \"Mercury\",\r\n            \"distancefromsun\": \"35.98 million mi\",\r\n            \"lightyears\": \"3 light minutes\",\r\n            \"moons\": \"0\"\r\n        },\r\n        {\r\n            \"id\": \"2\",\r\n            \"name\": \"Venus\",\r\n            \"distancefromsun\": \"67.24 million mi\",\r\n            \"lightyears\": \"6 light minutes\",\r\n            \"moons\": \"0\"\r\n        },\r\n        {\r\n            \"id\": \"3\",\r\n            \"name\": \"Earth\",\r\n            \"distancefromsun\": \"92.96 million mi\",\r\n            \"lightyears\": \"8 light minutes\",\r\n            \"moons\": \"1\"\r\n        },\r\n        {\r\n            \"id\": \"4\",\r\n            \"name\": \"Mars\",\r\n            \"distancefromsun\": \"141.6 million mi\",\r\n            \"lightyears\": \"12.5 light minutes\",\r\n            \"moons\": \"2\"\r\n        },\r\n        {\r\n            \"id\": \"5\",\r\n            \"name\": \"Jupiter\",\r\n            \"distancefromsun\": \"483.8 million mi\",\r\n            \"lightyears\": \"43 light minutes\",\r\n            \"moons\": \"69\"\r\n        },\r\n        {\r\n            \"id\": \"6\",\r\n            \"name\": \"Saturn\",\r\n            \"distancefromsun\": \"888.2 million mi\",\r\n            \"lightyears\": \"79 light minutes\",\r\n            \"moons\": \"2\"\r\n        },\r\n        {\r\n            \"id\": \"7\",\r\n            \"name\": \"Uranus\",\r\n            \"distancefromsun\": \"1.784 billion mi\",\r\n            \"lightyears\": \"160 light minutes\",\r\n            \"moons\": \"27\"\r\n        },\r\n        {\r\n            \"id\": \"8\",\r\n            \"name\": \"Neptune\",\r\n            \"distancefromsun\": \"35.98 million mi\",\r\n            \"lightyears\": \"250 light minutes\",\r\n            \"moons\": \"14\"\r\n        },\r\n        {\r\n            \"id\": \"9\",\r\n            \"name\": \"Pluto\",\r\n            \"distancefromsun\": \"3.68 billion mi\",\r\n            \"lightyears\": \"327 light minutes\",\r\n            \"moons\": \"5\"\r\n        }\r\n    ];\r\n\r\n    \/\/ This method will sort the column_list based on the sort_order\r\n    $scope.sort = function(column_name) {\r\n        if ($scope.orderProp === column_name) {\r\n            $scope.direction = !$scope.direction;\r\n        } else {\r\n            $scope.orderProp = column_name;\r\n            $scope.direction = false;\r\n        }\r\n    };\r\n});\r\n<\/pre>\n<h3>3.4 Complete Application<\/h3>\n<p>Complete the above steps and I will show you how to implement this example. Let\u2019s see the simple <code>HTML<\/code> code snippet to understand the usage of <code>orderBy<\/code> filter in the angular web applications.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>index.jsp<\/em><\/span><\/p>\n<pre class=\"brush: html; wrap-lines:false;\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\t&lt;head&gt;\r\n\t    &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"&gt;\r\n\t    &lt;title&gt;AngularJS OrderBy&lt;\/title&gt;\r\n\r\n\t    &lt;!-- AngularJs File --&gt;\r\n\t    &lt;script type=\"text\/javascript\" src=\"resource\/js\/angular_v1.6.0.js\"&gt;&lt;\/script&gt;\r\n\t    &lt;script type=\"text\/javascript\" src=\"resource\/js\/orderby.js\"&gt;&lt;\/script&gt;\r\n\r\n\t    &lt;!-- Bootstrap Css --&gt;\r\n\t    &lt;link rel=\"stylesheet\" href=\"https:\/\/maxcdn.bootstrapcdn.com\/bootstrap\/4.0.0\/css\/bootstrap.min.css\"&gt;\r\n\r\n\t    &lt;style type=\"text\/css\"&gt;\r\n\t        th, td {\r\n\t            text-align: center;\r\n\t        }\r\n\t        th a {\r\n\t            cursor: pointer;\r\n\t            text-decoration: none !important;\r\n\t        }\r\n\t        .highlight {\r\n\t            background-color: #F8F8F8;\r\n\t        }\r\n\t    &lt;\/style&gt;\r\n\t&lt;\/head&gt;\r\n\t&lt;body&gt;\r\n\t    &lt;div id=\"angularOrderby\" class=\"container\"&gt;\r\n\t        &lt;h1 align=\"center\" class=\"text-info\"&gt;AngularJS - orderBy Example&lt;\/h1&gt;\r\n\t        &lt;hr \/&gt;\r\n\r\n\t        &lt;!------ AngularJs 'orderBy' Example ------&gt;\r\n\t        &lt;div ng-app=\"app\" ng-controller=\"ctrl\"&gt;\r\n\t            &lt;h4 id=\"header_msg\" class=\"text-muted\"&gt;A demo of &lt;em&gt;orderBy&lt;\/em&gt; filter in Angular JavaScript!&lt;\/h4&gt;\r\n\t            &lt;div&gt;\u00a0&lt;\/div&gt;\r\n\r\n\t            &lt;table id=\"planetTable\" class=\"table\"&gt;\r\n\t                &lt;thead&gt;\r\n\t                    &lt;tr&gt;\r\n\t                        &lt;th scope=\"col\"&gt;&lt;a href=\"#\" ng-click=\"sort('id')\"&gt;Planet Id&lt;\/a&gt;&lt;\/th&gt;\r\n\t                        &lt;th scope=\"col\"&gt;&lt;a href=\"#\" ng-click=\"sort('name')\"&gt;Planet \/ Star&lt;\/a&gt;&lt;\/th&gt;\r\n\t                        &lt;th scope=\"col\"&gt;Distance from Sun&lt;\/th&gt;\r\n\t                        &lt;th scope=\"col\"&gt;Light Years&lt;\/th&gt;\r\n\t                        &lt;th scope=\"col\"&gt;&lt;a href=\"#\" ng-click=\"sort('moons')\"&gt;Moons Count?&lt;\/a&gt;&lt;\/th&gt;\r\n\t                    &lt;\/tr&gt;\r\n\t                &lt;\/thead&gt;\r\n\t                &lt;tbody&gt;\r\n\t                    &lt;tr ng-repeat=\"row in json_data | orderBy:orderProp:direction\" ng-class=\"rollClass\" ng-mouseenter=\"rollClass = 'highlight'\" ng-mouseleave=\"rollClass = ''\"&gt;\r\n\t                        &lt;td&gt;{{ row.id }}&lt;\/td&gt;\r\n\t                        &lt;td&gt;{{ row.name }}&lt;\/td&gt;\r\n\t                        &lt;td&gt;{{ row.distancefromsun }}&lt;\/td&gt;\r\n\t                        &lt;td&gt;{{ row.lightyears }}&lt;\/td&gt;\r\n\t                        &lt;td&gt;{{ row.moons }}&lt;\/td&gt;\r\n\t                    &lt;\/tr&gt;\r\n\t                &lt;\/tbody&gt;\r\n\t            &lt;\/table&gt;\r\n\t        &lt;\/div&gt;\r\n\t    &lt;\/div&gt;\r\n\t&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<h2>4. Run the Application<\/h2>\n<p>As we are ready for all the changes, let us compile the project and deploy the application on the Tomcat7 server. To deploy the application on Tomat7, right-click on the project and navigate to <code>Run as -&gt; Run on Server<\/code>.<\/p>\n<figure id=\"attachment_21537\" aria-describedby=\"caption-attachment-21537\" style=\"width: 775px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_deploy_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21537\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_deploy_guide_1.jpg\" alt=\"Fig. 6: How to Deploy Application on Tomcat\" width=\"775\" height=\"430\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_deploy_guide_1.jpg 775w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_deploy_guide_1-300x166.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_deploy_guide_1-768x426.jpg 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/a><figcaption id=\"caption-attachment-21537\" class=\"wp-caption-text\">Fig. 6: How to Deploy Application on Tomcat<\/figcaption><\/figure>\n<p>Tomcat will deploy the application in its web-apps folder and shall start its execution to deploy the project so that we can go ahead and test it in the browser.<\/p>\n<h2>5. Project Demo<\/h2>\n<p>Open your favorite browser and hit the following URL. The output page using the <code>orderBy<\/code> filter will be displayed.<\/p>\n<pre class=\"brush:plain; wrap-lines:false;\">http:\/\/localhost:8080\/AngularOrderBy\/\r\n<\/pre>\n<p>Server name (localhost) and port (8080) may vary as per your Tomcat configuration.<\/p>\n<figure id=\"attachment_21538\" aria-describedby=\"caption-attachment-21538\" style=\"width: 818px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_demo_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21538\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_demo_guide_1.jpg\" alt=\"Fig. 7: Application Index page\" width=\"818\" height=\"455\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_demo_guide_1.jpg 818w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_demo_guide_1-300x167.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/angular_orderby_ex_project_demo_guide_1-768x427.jpg 768w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><\/a><figcaption id=\"caption-attachment-21538\" class=\"wp-caption-text\">Fig. 7: Application Index page<\/figcaption><\/figure>\n<p>Here, as shown in Fig. 7 users can click on the column names to sort (i.e. <em>ascending<\/em> or <em>descending<\/em> order) the data. That\u2019s all for this post. Happy Learning!!<\/p>\n<h2>6. Conclusion<\/h2>\n<p>In this tutorial, developers learned how to create a simple angular application using the <code>orderBy<\/code> filter. Developers can download the sample application as an Eclipse project in the <a href=\"#projectDownload\">Downloads<\/a> section.<\/p>\n<h2><a name=\"projectDownload\"><\/a>7. Download the Eclipse Project<\/h2>\n<p>This was a tutorial of the <em>order by<\/em> functionality in the angular library.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/04\/AngularOrderBy.zip\" target=\"_blank\" rel=\"noopener\"><strong>AngularOrderBy<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello readers, in this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications. 1. Introduction Angular is a JavaScript MVC or Model-View-Controller framework developed by Google that lets developers build well structured, easily testable, and maintainable front-end applications. But before we start creating a real application using &hellip;<\/p>\n","protected":false},"author":2162,"featured_media":909,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[48,519,266],"class_list":["post-21531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-js","tag-angular","tag-angular-js","tag-angularjs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-27T13:15:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-27T13:19:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yatin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yatin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\"},\"author\":{\"name\":\"Yatin\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367\"},\"headline\":\"AngularJS orderBy Multiple Fields Example\",\"datePublished\":\"2018-04-27T13:15:13+00:00\",\"dateModified\":\"2018-04-27T13:19:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\"},\"wordCount\":990,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"keywords\":[\"angular\",\"Angular.js\",\"angularjs\"],\"articleSection\":[\"Angular.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\",\"name\":\"AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"datePublished\":\"2018-04-27T13:15:13+00:00\",\"dateModified\":\"2018-04-27T13:19:20+00:00\",\"description\":\"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Angular.js\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/angular-js\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AngularJS orderBy Multiple Fields Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367\",\"name\":\"Yatin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g\",\"caption\":\"Yatin\"},\"description\":\"The author is graduated in Electronics &amp; Telecommunication. During his studies, he has been involved with a significant number of projects ranging from programming and software engineering to telecommunications analysis. He works as a technical lead in the information technology sector where he is primarily involved with projects based on Java\/J2EE technologies platform and novel UI technologies.\",\"sameAs\":[\"https:\/\/www.webcodegeeks.com\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/yatin-batra\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026","description":"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/","og_locale":"en_US","og_type":"article","og_title":"AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026","og_description":"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2018-04-27T13:15:13+00:00","article_modified_time":"2018-04-27T13:19:20+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","type":"image\/jpeg"}],"author":"Yatin","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Yatin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/"},"author":{"name":"Yatin","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367"},"headline":"AngularJS orderBy Multiple Fields Example","datePublished":"2018-04-27T13:15:13+00:00","dateModified":"2018-04-27T13:19:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/"},"wordCount":990,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","keywords":["angular","Angular.js","angularjs"],"articleSection":["Angular.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/","name":"AngularJS orderBy Multiple Fields Example - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","datePublished":"2018-04-27T13:15:13+00:00","dateModified":"2018-04-27T13:19:20+00:00","description":"In this tutorial, we will learn how to implement and use the orderBy filter in the angular web applications.","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-orderby-multiple-fields-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Angular.js","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/angular-js\/"},{"@type":"ListItem","position":4,"name":"AngularJS orderBy Multiple Fields Example"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367","name":"Yatin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g","caption":"Yatin"},"description":"The author is graduated in Electronics &amp; Telecommunication. During his studies, he has been involved with a significant number of projects ranging from programming and software engineering to telecommunications analysis. He works as a technical lead in the information technology sector where he is primarily involved with projects based on Java\/J2EE technologies platform and novel UI technologies.","sameAs":["https:\/\/www.webcodegeeks.com"],"url":"https:\/\/www.webcodegeeks.com\/author\/yatin-batra\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/2162"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=21531"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21531\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/909"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=21531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=21531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=21531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}