{"id":6970,"date":"2015-09-22T12:00:08","date_gmt":"2015-09-22T09:00:08","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=6970"},"modified":"2017-12-19T16:41:23","modified_gmt":"2017-12-19T14:41:23","slug":"angular-js-grid-example","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/","title":{"rendered":"Angular.js Grid Example"},"content":{"rendered":"<p>We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides many <a href=\"http:\/\/ngmodules.org\/\" target=\"_blank\">modules<\/a>, ready to ease your development effort. So, what about tables? Is there any angular module, in order to avoid using the old-stylish HTML markup?<\/p>\n<h2>1. Introduction<\/h2>\n<p>Obviously, there are many more-specific modules around the market, so table-related exist for sure, too.<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n[ulp id=&#8217;LXJcMJZXSsqGXYW8&#8242;]<\/p>\n<h2>2. A Basic Example<\/h2>\n<p>First of all, let&#8217;s take a look on a very basic table creation with Angular, without using any external module. This will contain two rows for the first and last name, an auto-updated field for representing the full name of the customer, according to the input provided and some ratings of the customer, according to a predefined set of cars. The above describe a situation as the following screenshot depicts:<\/p>\n<figure id=\"attachment_6975\" aria-describedby=\"caption-attachment-6975\" style=\"width: 420px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/basic_table.jpg\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/basic_table.jpg\" alt=\"Figure 1. Basic Angular.js table\" width=\"420\" height=\"415\" class=\"size-full wp-image-6975\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/basic_table.jpg 420w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/basic_table-300x296.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/basic_table-70x70.jpg 70w\" sizes=\"(max-width: 420px) 100vw, 420px\" \/><\/a><figcaption id=\"caption-attachment-6975\" class=\"wp-caption-text\">Figure 1. Basic Angular.js table<\/figcaption><\/figure>\n<p><i>A small parenthesis before delving deeper in the javascript explanation of the above snippet: There is a common case that one may want his table to be displayed in a zebra-stylish format. According to a clean Angular app (without using any table modules), this is feasible by using the <a href=\"http:\/\/www.w3schools.com\/cssref\/sel_nth-child.asp\" target=\"_blank\">CSS3 :nth-child() Selector<\/a>.<\/i><\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Angular.js Table&lt;\/title&gt;\r\n&lt;script src=&quot;http:\/\/ajax.googleapis.com\/ajax\/libs\/angularjs\/1.4.5\/angular.min.js&quot;&gt;&lt;\/script&gt;\r\n&lt;style&gt;\r\ntable, th , td {\r\n  border: 1px solid grey;\r\n  border-collapse: collapse;\r\n  padding: 5px;\r\n}\r\ntable tr:nth-child(odd) {\r\n  background-color: #f2f2f2;\r\n}\r\ntable tr:nth-child(even) {\r\n  background-color: #ffffff;\r\n}\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h2&gt;Angular.js Simple Table&lt;\/h2&gt;\r\n&lt;div ng-app=&quot;mainApp&quot; ng-controller=&quot;customerController&quot;&gt;\r\n&lt;table border=&quot;0&quot;&gt;\r\n&lt;tr&gt;\r\n\t&lt;td&gt;First name:&lt;\/td&gt;&lt;td&gt;&lt;input type=&quot;text&quot; ng-model=&quot;customer.firstName&quot;&gt;&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n&lt;tr&gt;\r\n\t&lt;td&gt;Last name: &lt;\/td&gt;&lt;td&gt;&lt;input type=&quot;text&quot; ng-model=&quot;customer.lastName&quot;&gt;&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n&lt;tr&gt;\r\n\t&lt;td&gt;Full name: &lt;\/td&gt;&lt;td&gt;{{customer.fullName()}}&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n&lt;tr&gt;&lt;td&gt;Expectations:&lt;\/td&gt;&lt;td&gt;\r\n&lt;table&gt;\r\n   &lt;tr&gt;\r\n      &lt;th&gt;Car&lt;\/th&gt;\r\n      &lt;th&gt;Rating&lt;\/th&gt;\r\n   &lt;\/tr&gt;\r\n   &lt;tr ng-repeat=&quot;rating in customer.ratings&quot;&gt;\r\n      &lt;td&gt;{{ rating.car }}&lt;\/td&gt;\r\n      &lt;td&gt;{{ rating.mark }}&lt;\/td&gt;\r\n   &lt;\/tr&gt;\r\n&lt;\/table&gt;\r\n&lt;\/td&gt;&lt;\/tr&gt;\r\n&lt;\/table&gt;\r\n&lt;\/div&gt;\r\n&lt;script&gt;\r\nvar mainApp = angular.module(&quot;mainApp&quot;, &#x5B;]);\r\n\r\nmainApp.controller('customerController', function($scope) {\r\n   $scope.customer = {\r\n      firstName: &quot;&quot;,\r\n      lastName: &quot;&quot;,\r\n      ratings:&#x5B;\r\n         {car:'BMW 316 E46', mark:77},\r\n         {car:'BMW 316 E92', mark:89},\r\n         {car:'BMW M3 E92', mark:94},\r\n\t\t {car:'BMW M3 e46', mark:90},\r\n\t\t {car:'BMW X6', mark:85}\r\n      ],\r\n      fullName: function() {\r\n         var customerObject;\r\n         customerObject = $scope.customer;\r\n         return customerObject.firstName + &quot; &quot; + customerObject.lastName;\r\n      }\r\n   };\r\n});\r\n&lt;\/script&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p>Having read the fore-mentioned parenthesis, everything according to the style of this example should be clear enough, so let&#8217;s get into the table instance.<br \/>\n&nbsp;<br \/>\nLines 24 and 27 bind the user&#8217;s input for first and last name to the controller (in our case, it is named as &#8220;customerController&#8221;), by using a <code><a href=\"https:\/\/docs.angularjs.org\/guide\/scope\" target=\"_blank\">$scope<\/a><\/code> object. This is done using the <code><a href=\"https:\/\/docs.angularjs.org\/api\/ng\/directive\/ngModel\" target=\"_blank\">ng-model<\/a><\/code> directive, which indeed has many features, but the one that is helpful here is that it binds the view into the model, which other directives such as input, textarea or select require.<\/p>\n<p>Here are the rest features for the <code>ng-bind<\/code> directive:<\/p>\n<ul>\n<li>Provides validation behavior (i.e. required, number, email, url)..<\/li>\n<li>Keeps the state of the control (valid\/invalid, dirty\/pristine, touched\/untouched, validation errors).<\/li>\n<li>Sets related css classes on the element (ng-valid, ng-invalid, ng-dirty, ng-pristine, ng-touched, ng-untouched) including animations.<\/li>\n<li>Registers the control with its parent form.<\/li>\n<\/ul>\n<p><i>What is also important to take into account, is that <code>ngModel<\/code> will try to bind to the property given by evaluating the expression on the current scope. This means that if the property doesn\u2019t already exist on this scope, it will be created implicitly and added to the scope.<\/i><\/p>\n<p>Line 30 uses the double curly brace notation <code>{{ }}<\/code> to bind expressions to elements . You can imagine it as a quick way to write variable elements to the HTML part of your app. Specifically, what it implements in our case, is binding in HTML the fullName variable&#8217;s value from the customer object, which is taken from the controller&#8217;s <code>fullName<\/code> function (lines 60-64).<\/p>\n<p>The fore-mentioned function takes the customer object and according to the binded input from the first and last name text fields, produces the full name of the customer, by injecting the <code>$scope<\/code> object. The rest of customer&#8217;s attributes first\/last name (defining them with empty value in the controller means that on page load, no value will appear on them and only on an input event in the corresponding text fields, the full name will be updated.<\/p>\n<p>Finally, lines 38-41 iterate over the ratings array of the customer object, using the <code><a href=\"https:\/\/docs.angularjs.org\/api\/ng\/directive\/ngRepeat\" target=\"_blank\">ng-repeat<\/a><\/code> directive, in order to display the customer&#8217;s expectations according to each car that he drove.<\/p>\n<h2>3. Table Example with ng-table<\/h2>\n<p>In any case, the default HTML-ish representation of tables seems to be somehow old fashioned, regarding the evolution of the <a href=\"http:\/\/getbootstrap.com\/\" target=\"_blank\">Bootstrap<\/a> framework and web development, in overall.<\/p>\n<p>For this reason, a lot of table initiatives have started, in order to provide a better Angular.js table implementation. Some of them are <a href=\"http:\/\/lorenzofox3.github.io\/smart-table-website\/\" target=\"_blank\">SmartTable<\/a>, <a href=\"http:\/\/ng-table.com\" target=\"_blank\">ng-table<\/a> and <a href=\"http:\/\/ui-grid.info\/\" target=\"_blank\">ui-grid<\/a>.<\/p>\n<p>Here we &#8216;ll go for ng-table, as it&#8217;s very easy to setup.<\/p>\n<h3>3.1 Configure ng-table<\/h3>\n<p>Just like in any other external module, we have to include its JavaScript and CSS references. This is translated to the following two lines:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script src=&quot;https:\/\/cdn.jsdelivr.net\/angular.ngtable\/1.0.0-alpha.5\/ng-table.js&quot;&gt;&lt;\/script&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;https:\/\/cdn.jsdelivr.net\/angular.ngtable\/1.0.0-alpha.5\/ng-table.css&quot;&gt;\r\n<\/pre>\n<h3>3.2 Use ng-table<\/h3>\n<p>Let&#8217;s now display a table similar to the one used int the fore-mentioned example: two columns for name and age, with some data into it.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div ng-controller=&quot;DemoCtrl&quot;&gt;\r\n\t&lt;table ng-table class=&quot;table&quot;&gt;\r\n\t\t&lt;tr ng-repeat=&quot;user in users&quot;&gt;\r\n\t\t\t&lt;td title=&quot;'Name'&quot;&gt;\r\n\t\t\t\t{{user.name}}\r\n\t\t\t&lt;\/td&gt;\r\n\t\t\t&lt;td title=&quot;'Age'&quot;&gt;\r\n\t\t\t\t{{user.age}}\r\n\t\t\t&lt;\/td&gt;\r\n\t\t&lt;\/tr&gt;\r\n\t&lt;\/table&gt;\r\n\t&lt;script&gt;\r\n\tvar app = angular.module('main', &#x5B;'ngTable']).\r\n\tcontroller('DemoCtrl', function($scope) {\r\n\t\t$scope.users = &#x5B;{name: &quot;Moroni&quot;, age: 50},\r\n\t\t{name: &quot;Tiancum&quot;, age: 43},\r\n\t\t{name: &quot;Jacob&quot;, age: 27},\r\n\t\t{name: &quot;Nephi&quot;, age: 29},\r\n\t\t{name: &quot;Enos&quot;, age: 34}];\r\n\t})\r\n\t&lt;\/script&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p>In line 1, an <code><a href=\"https:\/\/docs.angularjs.org\/api\/ng\/directive\/ngController\" target=\"_blank\">ng-controller<\/a><\/code> is attached to the table, which means that a controller class is attached to the table&#8217;s view.<\/p>\n<p>In our case, we want the model part of the controller to only contain the dummy data that will be displayed to the view, through this controller. Assuming that we want these data to be save in a <code>$scope<\/code> variable (let&#8217;s say &#8220;users&#8221;), lines 15-19 provide this implementation. Moreover, we also have to add <code>ng-table<\/code> to our app module definition (line 13).<\/p>\n<p>Finally, in order to display the existing users, provided from the model, we have to iterate over the users collection, using <code>ng-repeat<\/code>. The <code><a href=\"https:\/\/docs.angularjs.org\/api\/ng\/directive\/ngRepeat\">ng-repeat<\/a><\/code> directive instantiates a template once per item from a collection. Each template instance gets its own scope, where the given loop vriable is set to the current location item, and $index is set to the item index or key.<\/p>\n<p>According to the above statements, line 3 stores in variable <code>user<\/code> each item of the <code>$scope.users<\/code> collection. Keeping that in mind, we provide each user&#8217;s name and age attributes, by accessing them respectively (lines 5, 8).<\/p>\n<h2>4. Demo<\/h2>\n<p>Let&#8217;s run this in a <a href=\"http:\/\/thodorisbais.blogspot.gr\/2015\/03\/how-to-solve-failed-to-execute-send-on.html\" target=\"_blank\">local server<\/a>.<\/p>\n<figure id=\"attachment_7143\" aria-describedby=\"caption-attachment-7143\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/ng-table_screenshot.jpg\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/ng-table_screenshot.jpg\" alt=\"Figure 2. Angular.js table with ng-table \" width=\"821\" height=\"392\" class=\"size-full wp-image-7143\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/ng-table_screenshot.jpg 821w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/ng-table_screenshot-300x143.jpg 300w\" sizes=\"(max-width: 821px) 100vw, 821px\" \/><\/a><figcaption id=\"caption-attachment-7143\" class=\"wp-caption-text\">Figure 2. Angular.js table with ng-table<\/figcaption><\/figure>\n<h2>5. Download<\/h2>\n<p>This was an example of Angular.js Table.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>You can download the full source code of this example here : <strong><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/09\/ng-table-example1.zip\">ng-table-example.zip<\/a><\/strong><\/div>\n","protected":false},"excerpt":{"rendered":"<p>We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides many modules, ready to ease your development effort. So, what about tables? Is there any angular module, in order to avoid using the old-stylish HTML &hellip;<\/p>\n","protected":false},"author":63,"featured_media":909,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[129],"class_list":["post-6970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-js","tag-table"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Angular.js Grid Example - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides\" \/>\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\/angular-js-grid-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular.js Grid Example - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-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:author\" content=\"https:\/\/www.facebook.com\/toubou.techblog\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-22T09:00:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-19T14:41:23+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=\"Thodoris Bais\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ThodorisBais\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thodoris Bais\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 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\/angular-js-grid-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/\"},\"author\":{\"name\":\"Thodoris Bais\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f622d6017801d9aa8131e1ae69bbdd0d\"},\"headline\":\"Angular.js Grid Example\",\"datePublished\":\"2015-09-22T09:00:08+00:00\",\"dateModified\":\"2017-12-19T14:41:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/\"},\"wordCount\":1402,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"keywords\":[\"table\"],\"articleSection\":[\"Angular.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/\",\"name\":\"Angular.js Grid Example - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"datePublished\":\"2015-09-22T09:00:08+00:00\",\"dateModified\":\"2017-12-19T14:41:23+00:00\",\"description\":\"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-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\/angular-js-grid-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\":\"Angular.js Grid 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\/f622d6017801d9aa8131e1ae69bbdd0d\",\"name\":\"Thodoris Bais\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dc31ee119255c1e4aa4a4f34858284d907cce53d033584d86b0e3de46db7d0ff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dc31ee119255c1e4aa4a4f34858284d907cce53d033584d86b0e3de46db7d0ff?s=96&d=mm&r=g\",\"caption\":\"Thodoris Bais\"},\"description\":\"Thodoris is an Oracle Certified Associate Java Programmer and currently works as a Junior Software Developer, for Intrasoft International S.A. He holds a diploma at Informatics &amp; Telecommunications Engineering and is interested in continuous development.\",\"sameAs\":[\"http:\/\/thodorisbais.blogspot.com\",\"https:\/\/www.facebook.com\/toubou.techblog\/\",\"https:\/\/instagram.com\/thodoris.bais\/\",\"https:\/\/www.linkedin.com\/pub\/thodoris-bais\/69\/6b7\/408\",\"https:\/\/x.com\/@ThodorisBais\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/thodoris-bais\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Angular.js Grid Example - Web Code Geeks - 2026","description":"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides","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\/angular-js-grid-example\/","og_locale":"en_US","og_type":"article","og_title":"Angular.js Grid Example - Web Code Geeks - 2026","og_description":"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_author":"https:\/\/www.facebook.com\/toubou.techblog\/","article_published_time":"2015-09-22T09:00:08+00:00","article_modified_time":"2017-12-19T14:41:23+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":"Thodoris Bais","twitter_card":"summary_large_image","twitter_creator":"@ThodorisBais","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Thodoris Bais","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/"},"author":{"name":"Thodoris Bais","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f622d6017801d9aa8131e1ae69bbdd0d"},"headline":"Angular.js Grid Example","datePublished":"2015-09-22T09:00:08+00:00","dateModified":"2017-12-19T14:41:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/"},"wordCount":1402,"commentCount":1,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","keywords":["table"],"articleSection":["Angular.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/","name":"Angular.js Grid Example - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","datePublished":"2015-09-22T09:00:08+00:00","dateModified":"2017-12-19T14:41:23+00:00","description":"We all know that Angular is the most famous JavaScript framework, at this time and one of the main reasons that lead it to the top is that it provides","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angular-js-grid-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\/angular-js-grid-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":"Angular.js Grid 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\/f622d6017801d9aa8131e1ae69bbdd0d","name":"Thodoris Bais","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dc31ee119255c1e4aa4a4f34858284d907cce53d033584d86b0e3de46db7d0ff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc31ee119255c1e4aa4a4f34858284d907cce53d033584d86b0e3de46db7d0ff?s=96&d=mm&r=g","caption":"Thodoris Bais"},"description":"Thodoris is an Oracle Certified Associate Java Programmer and currently works as a Junior Software Developer, for Intrasoft International S.A. He holds a diploma at Informatics &amp; Telecommunications Engineering and is interested in continuous development.","sameAs":["http:\/\/thodorisbais.blogspot.com","https:\/\/www.facebook.com\/toubou.techblog\/","https:\/\/instagram.com\/thodoris.bais\/","https:\/\/www.linkedin.com\/pub\/thodoris-bais\/69\/6b7\/408","https:\/\/x.com\/@ThodorisBais"],"url":"https:\/\/www.webcodegeeks.com\/author\/thodoris-bais\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/6970","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\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=6970"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/6970\/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=6970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=6970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=6970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}