﻿
{"id":25540,"date":"2022-09-10T12:22:11","date_gmt":"2022-09-10T12:22:11","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=25540"},"modified":"2022-09-10T12:22:11","modified_gmt":"2022-09-10T12:22:11","slug":"angular-gelismis-component-yapilanmasi-ngtemplateoutlet","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ngtemplateoutlet\/","title":{"rendered":"Angular &#8211; Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Angular mimarisinde bir structural directive olan <code>ngTemplateOutlet<\/code> direktifinin ne oldu\u011funu ve nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 tam teferruatl\u0131 ele al\u0131yor olaca\u011f\u0131z.<\/p>\n<h4 style=\"color:red;\">ngTemplateOutlet Neye Yarar?<\/h4>\n<p>DOM \u00fczerinde <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-container\/\" rel=\"noopener\" target=\"_blank\">ng-container<\/a> ile ayr\u0131lm\u0131\u015f \u00e7e\u015fitli b\u00f6l\u00fcmlere <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-template\/\" rel=\"noopener\" target=\"_blank\">ng-template<\/a>&#8216;in bar\u0131nd\u0131rd\u0131\u011f\u0131 i\u00e7erikleri yay\u0131nlamak i\u00e7in kullan\u0131lmaktad\u0131r.<\/p>\n<h4 style=\"color:red;\">ngTemplateOutlet Nas\u0131l Kullan\u0131l\u0131r?<\/h4>\n<p>Bunu \u00f6nceden klavyeye alm\u0131\u015f oldu\u011fumuz <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-container\/\" rel=\"noopener\" target=\"_blank\">ng-container<\/a> ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-template\/\" rel=\"noopener\" target=\"_blank\">ng-template<\/a> ba\u015fl\u0131kl\u0131 i\u00e7eriklerimizde basitinden incelemi\u015ftik. Yine benzer \u00f6rne\u011fi vermemiz gerekirse e\u011fer a\u015fa\u011f\u0131daki kod blo\u011funu inceleyiniz:<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div style=&quot;background-color:pink;&quot;&gt;\r\n  &lt;ng-container *ngTemplateOutlet=&quot;contentTemplate&quot;&gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;ng-template #contentTemplate&gt;\r\n  Content...\r\n&lt;\/ng-template&gt;\r\n<\/pre>\n<\/div>\n<h4 style=\"color:red;\">ngTemplateOutlet&#8217;i ngTemplateOutletContext \u0130le Kullanmak?<\/h4>\n<p><code>ngTemplateOutlet<\/code>&#8216;e <code>ngTemplateOutletContext<\/code> \u00f6zelli\u011fini kullanarak da ekstradan parametrik veriler iletebiliriz. \u015e\u00f6yle ki;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div style=&quot;background-color:pink;&quot;&gt;\r\n  &lt;ng-container &#x5B;ngTemplateOutlet]=&quot;contentTemplate&quot; &#x5B;ngTemplateOutletContext]=&quot;{data:{value:15}}&quot;&gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;ng-template #contentTemplate let-data=&quot;data&quot;&gt;\r\n  Content...\r\n  {{data.value}}\r\n&lt;\/ng-template&gt;\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz &#8216;contentTemplate&#8217; isminde bir \u015fablon olu\u015fturulmakta ve <code>ng-container<\/code> \u00fczerinden bu \u015fablona <code>[ngTemplateOutletContext]<\/code> e\u015fli\u011finde<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-1.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet\" width=\"91\" height=\"103\" class=\"alignleft size-full wp-image-25546\" \/><\/a> yandaki json de\u011feri parametre olarak g\u00f6nderilmektedir. <code>ng-template<\/code> ise bu parametreyi <code>let-data<\/code> keyword&#8217;\u00fc ile yakalamakta ve i\u00e7erisinde kullanmaktad\u0131r. Burada dikkat edilmesi gereken bir husus vard\u0131r ki o da, <code>let-data<\/code> i\u00e7erisinde belirtilecek parametre ad\u0131n\u0131n <code>[ngTemplateOutletContext]<\/code>&#8216;e verilen json datas\u0131ndaki ilk de\u011fer ile ayn\u0131 olmas\u0131 zaruriyetidir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet\" width=\"954\" height=\"231\" class=\"aligncenter size-full wp-image-25544\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet.png 954w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-300x73.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-768x186.png 768w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><\/a>Ayr\u0131ca alternatif olarak a\u015fa\u011f\u0131daki s\u00f6zdizimini de kullanabilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  &lt;ng-container *ngTemplateOutlet=&quot;contentTemplate; context:{data: {value: 15}}&quot; &gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n<\/pre>\n<\/div>\n<p>E\u011fer birden fazla parametrik de\u011fer g\u00f6ndermek istiyorsan\u0131z a\u015fa\u011f\u0131daki gibi \u00e7al\u0131\u015fabilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div style=&quot;background-color:pink;&quot;&gt;\r\n  &lt;ng-container &#x5B;ngTemplateOutlet]=&quot;contentTemplate&quot; &#x5B;ngTemplateOutletContext]=&quot;{data1:{value:15}, data2:{value:25}, data3:{value:35}}&quot; &gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;ng-template #contentTemplate\r\nlet-data1=&quot;data1&quot;\r\nlet-data2=&quot;data2&quot;\r\nlet-data3=&quot;data3&quot;&gt;\r\n  Content...\r\n  {{data1.value}}&lt;br&gt;\r\n  {{data2.value}}&lt;br&gt;\r\n  {{data3.value}}\r\n&lt;\/ng-template&gt;\r\n<\/pre>\n<\/div>\n<p>Ya da di\u011fer s\u00f6zdizimine g\u00f6re a\u015fa\u011f\u0131daki gibi de \u00e7al\u0131\u015fabilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  &lt;ng-container *ngTemplateOutlet=&quot;contentTemplate; context: {data1:{value:15}, data2:{value:25}, data3:{value:35}}&quot; &gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n<\/pre>\n<\/div>\n<h4 style=\"color:red;\">$implicit Kullan\u0131m\u0131?<\/h4>\n<p><code>$implicit<\/code> keyword&#8217;\u00fcn\u00fc context nesnesinde kullan\u0131rsan\u0131z e\u011fer t\u00fcm local de\u011fi\u015fkenler i\u00e7in default de\u011fer olarak ayarlama ger\u00e7ekle\u015ftirebilirsiniz. Misal olarak a\u015fa\u011f\u0131daki \u00f6rnekte, <code>let-default<\/code>&#8216;a herhangi bir de\u011fer atamas\u0131 ger\u00e7ekle\u015ftirmedik. Bundan dolay\u0131 ilgili parametre de\u011ferini <code>$implicit<\/code> parametresinden alacakt\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div style=&quot;background-color:pink;&quot;&gt;\r\n  &lt;ng-container &#x5B;ngTemplateOutlet]=&quot;contentTemplate&quot; &#x5B;ngTemplateOutletContext]=&quot;{$implicit: 'default value', data: {value:15}}&quot; &gt;\r\n\r\n  &lt;\/ng-container&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;ng-template #contentTemplate let-data=&quot;data&quot; let-default&gt;\r\n  Content...\r\n  {{data.value}} &lt;br&gt;\r\n  {{default}}\r\n&lt;\/ng-template&gt;\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-2.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet\" width=\"87\" height=\"34\" class=\"aligncenter size-full wp-image-25548\" \/><\/a><\/p>\n<p>Bizler <code>$implicit<\/code> keyword&#8217;\u00fcn\u00fc genellikle tekil parametrelerin s\u00f6z konusu oldu\u011fu durumlar i\u00e7in pratik oldu\u011fu d\u00fc\u015f\u00fcncesiyle tercih ederiz. Bunun i\u00e7in a\u015fa\u011f\u0131daki \u00f6rne\u011fi inceleyebilirsiniz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-persons',\r\n  template: `\r\n&lt;ng-container &#x5B;ngTemplateOutlet]=&quot;personTemplate&quot; &#x5B;ngTemplateOutletContext]=&quot;{$implicit: persons}&quot;&gt;\r\n\r\n&lt;\/ng-container&gt;\r\n\r\n&lt;ng-template let-persons #personTemplate&gt;\r\n  &lt;ul&gt;\r\n    &lt;li *ngFor=&quot;let person of persons&quot;&gt;\r\n      {{person.name}} {{person.surname}}\r\n    &lt;\/li&gt;\r\n  &lt;\/ul&gt;\r\n&lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class PersonsComponent {\r\n  persons: { name: string, surname: string }&#x5B;] = &#x5B;\r\n    { name: &quot;Gen\u00e7ay&quot;, surname: &quot;Y\u0131ld\u0131z&quot; },\r\n    { name: &quot;Nevin&quot;, surname: &quot;Y\u0131ld\u0131z&quot; },\r\n    { name: &quot;G\u00fcl\u015fah&quot;, surname: &quot;Y\u0131ld\u0131z&quot; },\r\n    { name: &quot;Muhammet K\u00fcr\u015fad&quot;, surname: &quot;Y\u0131ld\u0131z&quot; },\r\n  ]\r\n}\r\n<\/pre>\n<\/div>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere buradaki operasyonda direkt <code>ng-container<\/code> i\u00e7erisinde \u00e7a\u011fr\u0131lacak template i\u00e7erisine persons dizisi tek bir parametre olarak g\u00f6nderilmek istenmekte ve bunun i\u00e7in ayr\u0131 bir alan\u0131 manuel olarak tan\u0131mlamak yerine direkt olarak <code>$implicit<\/code> keyword&#8217;\u00fc ile default tan\u0131mlama ger\u00e7ekle\u015ftirilmektedir. Devam\u0131nda ise <code>ng-template<\/code>&#8216;te kullan\u0131rken direkt olarak <code>let-persons<\/code> ad\u0131nda bir de\u011fi\u015fkenle(ki farkl\u0131 bir isimde de olabilirdi) veri elde edilmektedir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-4.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet\" width=\"189\" height=\"75\" class=\"aligncenter size-full wp-image-25554\" \/><\/a><\/p>\n<h4 style=\"color:red;\">Child Component&#8217;e Template Ge\u00e7irmek<\/h4>\n<p><code>ngTemplateOutlet<\/code>&#8216;i kullanarak parent component&#8217;ten child component&#8217;e template&#8217;leri ge\u00e7irebilir ve istedi\u011fimiz yerlerde kullanabiliriz. Bunun i\u00e7in a\u015fa\u011f\u0131daki \u00f6rne\u011fi inceleyiniz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, OnInit } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-parent',\r\n  template: `\r\n&lt;ng-template #parentTemplate&gt;\r\nParent Component Template Content\r\n&lt;\/ng-template&gt;\r\n\r\n&lt;app-child &#x5B;childTemplate]=&quot;parentTemplate&quot;&gt;&lt;\/app-child&gt;\r\n`\r\n})\r\nexport class ParentComponent {\r\n\r\n}\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131da parent component&#8217;in i\u00e7eri\u011fine g\u00f6z atarsan\u0131z e\u011fer &#8216;parentTemplate&#8217; ad\u0131nda bir <code>ng-template<\/code> tan\u0131mlanm\u0131\u015ft\u0131r ve bu template, 10. sat\u0131rda selector&#8217;\u0131 ile \u00e7a\u011fr\u0131lan child component&#8217;in &#8216;childTemplate&#8217; de\u011ferine g\u00f6nderilmi\u015ftir. \u015eimdi de a\u015fa\u011f\u0131da child component&#8217;in i\u00e7eri\u011fine g\u00f6z atarsak;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, Input, OnInit, TemplateRef } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-child',\r\n  template: `\r\n&lt;ng-container *ngTemplateOutlet=&quot;childTemplate&quot;&gt;\r\n\r\n&lt;\/ng-container&gt;\r\n`\r\n})\r\nexport class ChildComponent {\r\n  @Input() childTemplate: TemplateRef&lt;HTMLElement&gt;;\r\n}\r\n<\/pre>\n<\/div>\n<p>Burada da <code>ng-container<\/code>&#8216;a <code>ngTemplateOutlet<\/code> ile bir &#8216;TemplateRef&lt;HTMLElement&gt;&#8217; t\u00fcr\u00fcnden &#8216;childTemplate&#8217; isimli input parametre ba\u011flanm\u0131\u015ft\u0131r. Bu parametre i\u015fte parent component&#8217;te 10. sat\u0131rdaki &#8216;[childTemplate]&#8217;e kar\u015f\u0131l\u0131k gelmektedir.<\/p>\n<p>Yap\u0131lan bu \u00e7al\u0131\u015fma neticesinde parent component&#8217;te ki template child component&#8217;e ge\u00e7irilmi\u015ftir.<\/p>\n<h4 style=\"color:red;\">ViewChild Kullanarak Template&#8217;e Eri\u015fmek<\/h4>\n<p>Herhangi bir component&#8217;te ki <code>ng-template<\/code>&#8216;e eri\u015fim sa\u011flayabilmek i\u00e7in a\u015fa\u011f\u0131daki gibi &#8216;ViewChild&#8217;\u0131 kullanabilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { AfterViewInit } from '@angular\/core';\r\nimport { TemplateRef, ViewChild } from '@angular\/core';\r\nimport { Component } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  template: `\r\n&lt;ng-template #myTemplate&gt;\r\nTemplate content\r\n&lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent implements AfterViewInit {\r\n  @ViewChild(&quot;myTemplate&quot;) myTemplate: TemplateRef&lt;HTMLElement&gt;;\r\n\r\n  ngAfterViewInit(): void {\r\n    console.log(this.myTemplate);\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-3.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ngTemplateOutlet\" width=\"557\" height=\"76\" class=\"aligncenter size-full wp-image-25552\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-3.png 557w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/09\/Angular-Gelismis-Component-Yapilanmasi-ngTemplateOutlet-3-300x41.png 300w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/a><\/p>\n<h4 style=\"color:red;\">ng-template&#8217;i ng-content \u0130le Birlikte Kullanmak<\/h4>\n<p>Parent ve child component&#8217;lerin s\u00f6z konusu oldu\u011fu durumlarda <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-content\/\" rel=\"noopener\" target=\"_blank\">ng-content<\/a>&#8216;i a\u015fa\u011f\u0131daki gibi <code>ng-template<\/code> i\u00e7erisinde kullanabilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, OnInit } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-parent',\r\n  template: `\r\n&lt;app-child&gt;\r\n  &lt;p&gt;Bu i\u00e7erik ng-content i\u00e7in&lt;\/p&gt;\r\n&lt;\/app-child&gt;\r\n`\r\n})\r\nexport class ParentComponent {\r\n\r\n}\r\n<\/pre>\n<\/div>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, Input, OnInit, TemplateRef } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-child',\r\n  template: `\r\n&lt;ng-container &#x5B;ngTemplateOutlet]=&quot;myTemplate&quot;&gt;\r\n\r\n&lt;\/ng-container&gt;\r\n\r\n&lt;ng-template #myTemplate&gt;\r\n  &lt;ng-content&gt;&lt;\/ng-content&gt;\r\n&lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class ChildComponent {\r\n\r\n}\r\n<\/pre>\n<\/div>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Angular mimarisinde bir structural directive olan ngTemplateOutlet direktifinin ne oldu\u011funu ve nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 tam teferruatl\u0131 ele al\u0131yor olaca\u011f\u0131z. ngTemplateOutlet Neye Yarar? DOM \u00fczerinde ng-container ile ayr\u0131lm\u0131\u015f \u00e7e\u015fitli b\u00f6l\u00fcmlere ng-template&#8216;in bar\u0131nd\u0131rd\u0131\u011f\u0131 i\u00e7erikleri&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7400,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2420],"tags":[4660,4647,4659,4658,4661],"class_list":["post-25540","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","tag-implicit-keywordu","tag-ngtemplateoutlet","tag-ngtemplateoutlet-directive","tag-ngtemplateoutlet-nedir","tag-ngtemplateoutletcontext"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=25540"}],"version-history":[{"count":10,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25540\/revisions"}],"predecessor-version":[{"id":25556,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25540\/revisions\/25556"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/7400"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=25540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=25540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=25540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}