{"id":71677,"date":"2020-01-10T16:11:01","date_gmt":"2020-01-10T10:41:01","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?p=71677"},"modified":"2024-04-12T14:22:38","modified_gmt":"2024-04-12T08:52:38","slug":"display-a-heroes-list","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/","title":{"rendered":"Display a Heroes List"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.vskills.in\/certification\/tutorial\/angular-7-developer-tutorials\/\" target=\"_blank\" rel=\"noreferrer noopener\">Go back to Tutorial<\/a><\/p>\n\n\n<p>We will expand the Tour of Heroes app to display a list of heroes, and allow users to select a hero and display the hero&#8217;s details.<\/p>\n<h3><strong>Create mock heroes<\/strong><\/h3>\n<p>You&#8217;ll need some heroes to display. Eventually you&#8217;ll get them from a remote data server. For now, you&#8217;ll create some mock heroes and pretend they came from the server.<\/p>\n<p>Create a file called mock-heroes.ts in the src\/app\/ folder. Define a HEROES constant as an array of ten heroes and export it. The file should look like this.<\/p>\n<p><strong>src\/app\/mock-heroes.ts<\/strong><\/p>\n<p>import { Hero } from &#8216;.\/hero&#8217;;<\/p>\n<p>export const HEROES: Hero[] = [<\/p>\n<p>{ id: 11, name: &#8216;Mr. Nice&#8217; },<\/p>\n<p>{ id: 12, name: &#8216;Narco&#8217; },<\/p>\n<p>{ id: 13, name: &#8216;Bombasto&#8217; },<\/p>\n<p>{ id: 14, name: &#8216;Celeritas&#8217; },<\/p>\n<p>{ id: 15, name: &#8216;Magneta&#8217; },<\/p>\n<p>{ id: 16, name: &#8216;RubberMan&#8217; },<\/p>\n<p>{ id: 17, name: &#8216;Dynama&#8217; },<\/p>\n<p>{ id: 18, name: &#8216;Dr IQ&#8217; },<\/p>\n<p>{ id: 19, name: &#8216;Magma&#8217; },<\/p>\n<p>{ id: 20, name: &#8216;Tornado&#8217; }<\/p>\n<p>];<\/p>\n<p><strong>Displaying heroes<\/strong><\/p>\n<p>You&#8217;re about to display the list of heroes at the top of the HeroesComponent. Open the HeroesComponent class file and import the mock HEROES.<\/p>\n<p><strong>src\/app\/heroes\/heroes.component.ts (import HEROES)<\/strong><\/p>\n<p>import { HEROES } from &#8216;..\/mock-heroes&#8217;;<\/p>\n<p>In the same file (HeroesComponent class), define a component property called heroes to expose HEROES array for binding.<\/p>\n<p>export class HeroesComponent implements OnInit {<\/p>\n<p>heroes = HEROES;<\/p>\n<p>List heroes with *ngFor<\/p>\n<p>Open the HeroesComponent template file and make the following changes:<\/p>\n<ul>\n<li>Add an &lt;h2&gt; at the top,<\/li>\n<li>Below it add an HTML unordered list (&lt;ul&gt;)<\/li>\n<li>Insert an &lt;li&gt; within the &lt;ul&gt; that displays properties of a hero.<\/li>\n<li>Sprinkle some CSS classes for styling (you&#8217;ll add the CSS styles shortly).<\/li>\n<\/ul>\n<p>Make it look like this:<\/p>\n<p><strong>heroes.component.html (heroes template)<\/strong><\/p>\n<p>&lt;h2&gt;My Heroes&lt;\/h2&gt;<\/p>\n<p>&lt;ul class=&#8221;heroes&#8221;&gt;<\/p>\n<p>&lt;li&gt;<\/p>\n<p>&lt;span class=&#8221;badge&#8221;&gt;{{hero.id}}&lt;\/span&gt; {{hero.name}}<\/p>\n<p>&lt;\/li&gt;<\/p>\n<p>&lt;\/ul&gt;<\/p>\n<p>Now change the &lt;li&gt; to this:<\/p>\n<p>&lt;li *ngFor=&#8221;let hero of heroes&#8221;&gt;<\/p>\n<p>The *ngFor is Angular&#8217;s repeater directive. It repeats the host element for each element in a list. In this example<\/p>\n<ul>\n<li>&lt;li&gt; is the host element<\/li>\n<li>heroes is the list from the HeroesComponent class.<\/li>\n<li>hero holds the current hero object for each iteration through the list.<\/li>\n<\/ul>\n<p>Don&#8217;t forget the asterisk (*) in front of ngFor. It&#8217;s a critical part of the syntax. After the browser refreshes, the list of heroes appears.<\/p>\n<h3><strong>Style the heroes<\/strong><\/h3>\n<p>The heroes list should be attractive and should respond visually when users hover over and select a hero from the list.<\/p>\n<p>In the first tutorial, you set the basic styles for the entire application in styles.css. That stylesheet didn&#8217;t include styles for this list of heroes. You could add more styles to styles.css and keep growing that stylesheet as you add components.<\/p>\n<p>You may prefer instead to define private styles for a specific component and keep everything a component needs\u2014 the code, the HTML, and the CSS \u2014together in one place.&nbsp; This approach makes it easier to re-use the component somewhere else and deliver the component&#8217;s intended appearance even if the global styles are different.<\/p>\n<p>You define private styles either inline in the @Component.styles array or as stylesheet file(s) identified in the @Component.styleUrls array. When the CLI generated the HeroesComponent, it created an empty heroes.component.css stylesheet for the HeroesComponent and pointed to it in @Component.styleUrls like this.<\/p>\n<p><strong>src\/app\/heroes\/heroes.component.ts (@Component)<\/strong><\/p>\n<p>@Component({<\/p>\n<p>selector: &#8216;app-heroes&#8217;,<\/p>\n<p>templateUrl: &#8216;.\/heroes.component.html&#8217;,<\/p>\n<p>styleUrls: [&#8216;.\/heroes.component.css&#8217;]\n<p>})<\/p>\n<p>Open the heroes.component.css file and paste in the private CSS styles for the HeroesComponent.<\/p>\n<p>Styles and stylesheets identified in @Component metadata are scoped to that specific component. The heroes.component.css styles apply only to the HeroesComponent and don&#8217;t affect the outer HTML or the HTML in any other component.<\/p>\n<p><strong>Master\/Detail<\/strong><\/p>\n<p>When the user clicks a hero in the master list, the component should display the selected hero&#8217;s details at the bottom of the page.<\/p>\n<p>In this section, you&#8217;ll listen for the hero item click event and update the hero detail.<\/p>\n<p><strong>Add a click event binding<\/strong><\/p>\n<p>Add a click event binding to the &lt;li&gt; like this:<\/p>\n<p><strong>heroes.component.html (template excerpt)<\/strong><\/p>\n<p>&lt;li *ngFor=&#8221;let hero of heroes&#8221; (click)=&#8221;onSelect(hero)&#8221;&gt;<\/p>\n<p>This is an example of Angular&#8217;s event binding syntax. The parentheses around click tell Angular to listen for the &lt;li&gt; element&#8217;s click event. When the user clicks in the &lt;li&gt;, Angular executes the onSelect(hero) expression.<\/p>\n<p>onSelect() is a HeroesComponent method that you&#8217;re about to write. Angular calls it with the hero object displayed in the clicked &lt;li&gt;, the same hero defined previously in the *ngFor expression.<\/p>\n<p><strong>Add the click event handler<\/strong><\/p>\n<p>Rename the component&#8217;s hero property to selectedHero but don&#8217;t assign it. There is no selected hero when the application starts.<\/p>\n<p>Add the following onSelect() method, which assigns the clicked hero from the template to the component&#8217;s selectedHero.<\/p>\n<p><strong>src\/app\/heroes\/heroes.component.ts (onSelect)<\/strong><\/p>\n<p>selectedHero: Hero;<\/p>\n<p>onSelect(hero: Hero): void {<\/p>\n<p>this.selectedHero = hero;<\/p>\n<p>}<\/p>\n<p><strong>Update the details template<\/strong><\/p>\n<p>The template still refers to the component&#8217;s old hero property which no longer exists. Rename hero to selectedHero.<\/p>\n<p><strong>heroes.component.html (selected hero details)<\/strong><\/p>\n<p>&lt;h2&gt;{{selectedHero.name | uppercase}} Details&lt;\/h2&gt;<\/p>\n<p>&lt;div&gt;&lt;span&gt;id: &lt;\/span&gt;{{selectedHero.id}}&lt;\/div&gt;<\/p>\n<p>&lt;div&gt;<\/p>\n<p>&lt;label&gt;name:<\/p>\n<p>&lt;input [(ngModel)]=&#8221;selectedHero.name&#8221; placeholder=&#8221;name&#8221;&gt;<\/p>\n<p>&lt;\/label&gt;<\/p>\n<p>&lt;\/div&gt;<\/p>\n<p>Hide empty details with *ngIf<\/p>\n<p>After the browser refreshes, the application is broken. Open the browser developer tools and look in the console for an error message like this:<\/p>\n<p>HeroesComponent.html:3 ERROR TypeError: Cannot read property &#8216;name&#8217; of undefined<\/p>\n<p>Now click one of the list items. The app seems to be working again. The heroes appear in a list and details about the clicked hero appear at the bottom of the page.<\/p>\n<p><strong>What happened? <\/strong>When the app starts, the selectedHero is undefined by design. Binding expressions in the template that refer to properties of selectedHero \u2014 expressions like {{selectedHero.name}} \u2014 must fail because there is no selected hero.<\/p>\n<p><strong>The fix<\/strong> &#8211; The component should only display the selected hero details if the selectedHero exists. Wrap the hero detail HTML in a &lt;div&gt;. Add Angular&#8217;s *ngIf directive to the &lt;div&gt; and set it to selectedHero.<\/p>\n<p>Don&#8217;t forget the asterisk (*) in front of ngIf. It&#8217;s a critical part of the syntax.<\/p>\n<p><strong>src\/app\/heroes\/heroes.component.html (*ngIf)<\/strong><\/p>\n<p>&lt;div *ngIf=&#8221;selectedHero&#8221;&gt;<\/p>\n<p>&lt;h2&gt;{{selectedHero.name | uppercase}} Details&lt;\/h2&gt;<\/p>\n<p>&lt;div&gt;&lt;span&gt;id: &lt;\/span&gt;{{selectedHero.id}}&lt;\/div&gt;<\/p>\n<p>&lt;div&gt;<\/p>\n<p>&lt;label&gt;name:<\/p>\n<p>&lt;input [(ngModel)]=&#8221;selectedHero.name&#8221; placeholder=&#8221;name&#8221;&gt;<\/p>\n<p>&lt;\/label&gt;<\/p>\n<p>&lt;\/div&gt;<\/p>\n<p>&lt;\/div&gt;<\/p>\n<p>After the browser refreshes, the list of names reappears. The details area is blank. Click a hero and its details appear.<\/p>\n<p>When selectedHero is undefined, the ngIf removes the hero detail from the DOM. There are no selectedHero bindings to worry about.<\/p>\n<p>When the user picks a hero, selectedHero has a value and ngIf puts the hero detail into the DOM.<\/p>\n<h3><strong>Style the selected hero<\/strong><\/h3>\n<p>It&#8217;s difficult to identify the selected hero in the list when all &lt;li&gt; elements look alike.<\/p>\n<p>If the user clicks &#8220;Magneta&#8221;, that hero should render with a distinctive but subtle background color like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-138059\" src=\"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png\" alt=\"\" width=\"165\" height=\"129\"><\/p>\n<p>That selected hero coloring is the work of the .selected CSS class in the styles you added earlier. You just have to apply the .selected class to the &lt;li&gt; when the user clicks it.<\/p>\n<p>The Angular class binding makes it easy to add and remove a CSS class conditionally. Just add [class.some-css-class]=&#8221;some-condition&#8221; to the element you want to style. Add the following [class.selected] binding to the &lt;li&gt; in the HeroesComponent template:<\/p>\n<p><strong>heroes.component.html (toggle the &#8216;selected&#8217; CSS class)<\/strong><\/p>\n[class.selected]=&#8221;hero === selectedHero&#8221;<\/p>\n<p>When the current row hero is the same as the selectedHero, Angular adds the selected CSS class. When the two heroes are different, Angular removes the class. The finished &lt;li&gt; looks like this:<\/p>\n<p><strong>heroes.component.html (list item hero)<\/strong><\/p>\n<p>&lt;li *ngFor=&#8221;let hero of heroes&#8221;<\/p>\n[class.selected]=&#8221;hero === selectedHero&#8221;<\/p>\n<p>(click)=&#8221;onSelect(hero)&#8221;&gt;<\/p>\n<p>&lt;span class=&#8221;badge&#8221;&gt;{{hero.id}}&lt;\/span&gt; {{hero.name}}<\/p>\n<p>&lt;\/li&gt;<\/p>\n\n\n<p><a href=\"https:\/\/www.vskills.in\/certification\/tutorial\/angular-7-developer-tutorials\/\" target=\"_blank\" rel=\"noreferrer noopener\">Go back to Tutorial<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Go back to Tutorial We will expand the Tour of Heroes app to display a list of heroes, and allow users to select a hero and display the hero&#8217;s details. Create mock heroes You&#8217;ll need some heroes to display. Eventually you&#8217;ll get them from a remote data server. For now, you&#8217;ll create some mock heroes&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[8294],"tags":[8318],"class_list":["post-71677","page","type-page","status-publish","hentry","category-angular-7","tag-display-a-heroes-list"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Display a Heroes List - Tutorial<\/title>\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.vskills.in\/certification\/tutorial\/display-a-heroes-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Display a Heroes List - Tutorial\" \/>\n<meta property=\"og:description\" content=\"Go back to Tutorial We will expand the Tour of Heroes app to display a list of heroes, and allow users to select a hero and display the hero&#8217;s details. Create mock heroes You&#8217;ll need some heroes to display. Eventually you&#8217;ll get them from a remote data server. For now, you&#8217;ll create some mock heroes...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T08:52:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/\",\"name\":\"Display a Heroes List - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png\",\"datePublished\":\"2020-01-10T10:41:01+00:00\",\"dateModified\":\"2024-04-12T08:52:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage\",\"url\":\"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png\",\"contentUrl\":\"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Display a Heroes List\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Display a Heroes List - Tutorial","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.vskills.in\/certification\/tutorial\/display-a-heroes-list\/","og_locale":"en_US","og_type":"article","og_title":"Display a Heroes List - Tutorial","og_description":"Go back to Tutorial We will expand the Tour of Heroes app to display a list of heroes, and allow users to select a hero and display the hero&#8217;s details. Create mock heroes You&#8217;ll need some heroes to display. Eventually you&#8217;ll get them from a remote data server. For now, you&#8217;ll create some mock heroes...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-04-12T08:52:38+00:00","og_image":[{"url":"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png","type":"","width":"","height":""}],"twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/","name":"Display a Heroes List - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png","datePublished":"2020-01-10T10:41:01+00:00","dateModified":"2024-04-12T08:52:38+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#primaryimage","url":"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png","contentUrl":"https:\/\/www.vskills.in\/lms\/wp-content\/uploads\/2019\/06\/style-hero.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/display-a-heroes-list\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Display a Heroes List"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/71677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=71677"}],"version-history":[{"count":4,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/71677\/revisions"}],"predecessor-version":[{"id":87833,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/71677\/revisions\/87833"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=71677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=71677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=71677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}