﻿
{"id":25475,"date":"2022-08-24T06:37:39","date_gmt":"2022-08-24T06:37:39","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=25475"},"modified":"2022-08-24T06:37:39","modified_gmt":"2022-08-24T06:37:39","slug":"angular-gelismis-component-yapilanmasi-ng-template","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-template\/","title":{"rendered":"Angular &#8211; Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ng-template"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Angular mimarisinde tasar\u0131msal a\u00e7\u0131dan \u015fablonlarla dinamik \u00e7al\u0131\u015fmalar ger\u00e7ekle\u015ftirmemizi sa\u011flayan <code>ng-template<\/code> \u00f6zelli\u011fini inceliyor olaca\u011f\u0131z.<\/p>\n<h4>ng-template Nedir?<\/h4>\n<p><code>ng-template<\/code>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-gelismis-component-yapilanmasi-ng-container\/\" rel=\"noopener\" target=\"_blank\">ng-container<\/a> gibi sayfa \u00fczerinde HTML elementleriyle u\u011fra\u015fmaks\u0131z\u0131n bir b\u00f6l\u00fcm\/alan olu\u015fturmam\u0131za olanak sa\u011flayan ve Document Object Model(DOM) i\u00e7erisinde tan\u0131mlanmayan bir \u00f6zelliktir. <code>ng-container<\/code>&#8216;dan temel fark\u0131, render edildi\u011fi taktirde dahi ayr\u0131 aparatlar arac\u0131l\u0131\u011f\u0131yla g\u00f6sterilmedi\u011fi s\u00fcrece i\u00e7erisindeki HTML elementlerin DOM \u00fczerine i\u015flenmemesidir.<\/p>\n<p>Misal olarak a\u015fa\u011f\u0131daki kod blo\u011funu incelerseniz e\u011fer;<\/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-root',\r\n  template: `\r\n    &lt;ng-container&gt;\r\n      Container i\u00e7erik\r\n    &lt;\/ng-container&gt;\r\n    &lt;ng-template&gt;\r\n      Template i\u00e7erik\r\n    &lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  title = 'a';\r\n}\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ng-template\" width=\"161\" height=\"58\" class=\"alignleft size-full wp-image-25476\" \/><\/a>Bu kod render edildi\u011finde <code>ng-container<\/code>&#8216;\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131n DOM&#8217;a eklendi\u011fini lakin <code>ng-template<\/code>&#8216;in \u00e7\u0131kt\u0131s\u0131n\u0131n ise eklenmedi\u011fini g\u00f6receksiniz.<\/p>\n<p>Buradan anl\u0131yoruz ki, <code>ng-template<\/code>&#8216;in nerede ve ne zaman g\u00f6r\u00fcnt\u00fclenece\u011fini bildirmek bizim i\u015fimizdir.<\/p>\n<p><code>ng-template<\/code>&#8216;i g\u00f6r\u00fcnt\u00fclemek i\u00e7in a\u015fa\u011f\u0131daki iki y\u00f6ntemden birini kullanabilirsiniz:<\/p>\n<ul>\n<li><code>ngTemplateOutlet<\/code> direktifi<\/li>\n<li>TemplateRef &#038; ViewContainerRef \u00f6\u011feleri<\/li>\n<\/ul>\n<h4>ngTemplateOutlet Direktifi \u0130le ng-template&#8217;i G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &lt;ng-container *ngTemplateOutlet=&quot;templateIcerik&quot;&gt;\r\n      Container i\u00e7erik\r\n    &lt;\/ng-container&gt;\r\n    &lt;ng-template #templateIcerik&gt;\r\n      Template i\u00e7erik\r\n    &lt;\/ng-template&gt;\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-1.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ng-template\" width=\"388\" height=\"98\" class=\"alignleft size-full wp-image-25480\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-1.png 388w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-1-300x76.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/a>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer ilgili <code>ng-template<\/code>&#8216;e bir referans at\u0131yoruz ve bu referans\u0131 <code>ng-container<\/code> \u00fczerinde &#8216;ngTemplateOutlet&#8217; direktifi e\u015fli\u011finde \u00e7a\u011f\u0131r\u0131yoruz. Yap\u0131lan render neticesine g\u00f6z atarsan\u0131z e\u011fer <code>ng-template<\/code>&#8216;in <code>ng-container<\/code> i\u00e7eri\u011fini ezdi\u011fini g\u00f6r\u00fcyoruz.<\/p>\n<h4>TemplateRef &#038; ViewContainerRef \u0130le ng-template&#8217;i G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<p>&#8216;TemplateRef&#8217;, <code>ng-template<\/code>&#8216;i component \u00fczerinde(.ts) temsil etmemizi sa\u011flayan bir s\u0131n\u0131fken, &#8216;ViewContainerRef&#8217; ise <code>ng-template<\/code>&#8216;in nerede olu\u015fturulaca\u011f\u0131n\u0131 belirtmemizi sa\u011flayan ba\u015fka bir s\u0131n\u0131ft\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { AfterViewInit, Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular\/core';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  template: `\r\n    &lt;ng-template #templateIcerik&gt;\r\n      Template i\u00e7erik\r\n    &lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent implements AfterViewInit {\r\n  constructor(private viewContainerRef: ViewContainerRef) {\r\n\r\n  }\r\n\r\n  @ViewChild(&quot;templateIcerik&quot;, { read: TemplateRef })\r\n  templateIcerik: TemplateRef&lt;any&gt;;\r\n\r\n  ngAfterViewInit(): void {\r\n    this.viewContainerRef.createEmbeddedView(this.templateIcerik);\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131daki kod blo\u011funa g\u00f6z atarsan\u0131z e\u011fer <code>ng-template<\/code>&#8216;e yine bir referans verilmekte ve component&#8217;in .ts dosyas\u0131 i\u00e7erisinde &#8216;@ViewChild&#8217; e\u015fli\u011finde bu referans &#8216;TemplateRef&#8217; t\u00fcr\u00fcnde elde edilmektedir. Ard\u0131ndan dependency injection ile inject edilen &#8216;ViewContainerRef&#8217; nesnesi \u00fczerinden <code>createEmbeddedView<\/code> metodu kullan\u0131larak <code>ng-template<\/code> sayfada g\u00f6r\u00fcnt\u00fclenmektedir.<\/p>\n<p>Evet, art\u0131k <code>ng-template<\/code>&#8216;in ne oldu\u011funu ve nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6\u011frendi\u011fimize g\u00f6re gelin hangi durumlarda tercih edebilece\u011fimizi inceleyelim.<\/p>\n<h4>ngIf \u0130le ng-template Kullan\u0131m\u0131<\/h4>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-4-ngif-direktifi\/\" rel=\"noopener\" target=\"_blank\">ngIf<\/a> direktifini a\u015fa\u011f\u0131daki gibi bir durumda bir\u00e7ok kez kullanm\u0131\u015fs\u0131n\u0131zd\u0131r.<\/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-root',\r\n  template: `\r\n    &lt;input &#x5B;(ngModel)]=&quot;selected&quot; type=&quot;checkbox&quot;&gt; Se\u00e7\r\n    &lt;div *ngIf=&quot;selected&quot;&gt;\r\n      Se\u00e7ili\r\n    &lt;\/div&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  selected: boolean = false;\r\n}\r\n<\/pre>\n<\/div>\n<p>Bu kodu yazman\u0131n a\u015fa\u011f\u0131daki gibi <code>ng-template<\/code> e\u015fli\u011finde farkl\u0131 bir yolu daha vard\u0131r. <\/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-root',\r\n  template: `\r\n    &lt;input &#x5B;(ngModel)]=&quot;selected&quot; type=&quot;checkbox&quot;&gt; Se\u00e7\r\n    &lt;ng-template &#x5B;ngIf]=&quot;selected&quot;&gt;\r\n      &lt;div&gt;\r\n        Se\u00e7ili\r\n      &lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  selected: boolean = false;\r\n}\r\n<\/pre>\n<\/div>\n<p>Ya da a\u015fa\u011f\u0131daki gibi if-else durumlar\u0131na g\u00f6re \u015fablon g\u00f6sterimlerinde <code>ng-template<\/code> bi\u00e7ilmi\u015f kaftand\u0131r.<\/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-root',\r\n  template: `\r\n    &lt;div *ngIf=&quot;selected; then template1 else template2&quot;&gt;\r\n\r\n    &lt;\/div&gt;\r\n    &lt;ng-template #template1&gt;\r\n      \u015eablon 1\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template #template2&gt;\r\n      \u015eablon 2\r\n    &lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  selected: boolean = true;\r\n}\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-2.png\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ng-template\" width=\"335\" height=\"71\" class=\"alignleft size-full wp-image-25483\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-2.png 335w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template-2-300x64.png 300w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/a>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere \u015farta g\u00f6re hangi <code>ng-template<\/code>&#8216;in g\u00f6r\u00fcnt\u00fclenece\u011fini <em>if -> then -> else<\/em> yap\u0131s\u0131 sayesinde belirlememizi sa\u011flamaktad\u0131r. Ayr\u0131ca ilgili HTML eleman\u0131n\u0131n yerine \u015farta uygun referansa kar\u015f\u0131l\u0131k gelen <code>ng-template<\/code>&#8216;in i\u00e7eri\u011fini bast\u0131\u011f\u0131na dikkatinizi \u00e7ekerim.<\/p>\n<p>Tabi yukar\u0131daki \u00e7al\u0131\u015fmay\u0131 a\u015fa\u011f\u0131daki gibi <code>[ngIf]<\/code>, <code>[ngIfThen]<\/code> ve <code>[ngIfElse]<\/code> direktifleri e\u015fli\u011finde de geli\u015ftirebiliriz.<\/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-root',\r\n  template: `\r\n    &lt;ng-template &#x5B;ngIf]=&quot;selected&quot; &#x5B;ngIfThen]=&quot;template1&quot; &#x5B;ngIfElse]=&quot;template2&quot;&gt;\r\n\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template #template1&gt;\r\n      \u015eablon 1\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template #template2&gt;\r\n      \u015eablon 2\r\n    &lt;\/ng-template&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  selected: boolean = true;\r\n}\r\n<\/pre>\n<\/div>\n<h4>ngFor \u0130le ng-template Kullan\u0131m\u0131<\/h4>\n<p>A\u015fa\u011f\u0131daki <a href=\"https:\/\/www.gencayyildiz.com\/blog\/angular-4-ngfor-dongusu\/\" rel=\"noopener\" target=\"_blank\">ngFor<\/a> direktifiyle olan \u00e7al\u0131\u015fmay\u0131 ele al\u0131rsak e\u011fer;<\/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-root',\r\n  template: `\r\n    &lt;ul&gt;\r\n      &lt;li *ngFor=&quot;let product of products;trackBy: trackByProduct&quot;&gt;\r\n        {{ product.name }}\r\n      &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  products: { name: string, quantity: number }&#x5B;] = &#x5B;\r\n    { name: &quot;A Product&quot;, quantity: 15 },\r\n    { name: &quot;B Product&quot;, quantity: 25 },\r\n    { name: &quot;C Product&quot;, quantity: 35 },\r\n    { name: &quot;D Product&quot;, quantity: 45 }\r\n  ]\r\n\r\n  trackByProduct(index, product: { name: string, quantity: number }) {\r\n    return product.name;\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p><code>ng-template<\/code> e\u015fli\u011finde a\u015fa\u011f\u0131daki gibi de in\u015fa edebilirsiniz.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &lt;ul&gt;\r\n      &lt;ng-template\r\n      ngFor let-product\r\n      &#x5B;ngForOf]=&quot;products&quot;\r\n      &#x5B;ngForTrackBy]=&quot;trackByProduct&quot;&gt;\r\n        &lt;li&gt;\r\n          {{ product.name }}\r\n        &lt;\/li&gt;\r\n      &lt;\/ng-template&gt;\r\n    &lt;\/ul&gt;\r\n<\/pre>\n<\/div>\n<p>Burada g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere <code>ngFor<\/code>, <code>[ngForOf]<\/code> ve <code>[ngForTrackBy]<\/code> direktifleri bizlere e\u015flik etmektedir.<\/p>\n<h4>ngSwitch \u0130le ng-template Kullan\u0131m\u0131<\/h4>\n<p><code>ng-template<\/code>&#8216;i ayn\u0131 \u015fekilde <code>ngSwitch<\/code> ile birlikte de kullanabilmekteyiz. \u015e\u00f6yle ki;<\/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-root',\r\n  template: `\r\n  &lt;input type=&quot;number&quot; &#x5B;(ngModel)]=&quot;number&quot; max=&quot;5&quot; min=&quot;1&quot;&gt;\r\n  &lt;div &#x5B;ngSwitch]=&quot;number&quot;&gt;\r\n    &lt;div *ngSwitchCase=&quot;1&quot;&gt;Bir&lt;\/div&gt;\r\n    &lt;div *ngSwitchCase=&quot;2&quot;&gt;\u0130ki&lt;\/div&gt;\r\n    &lt;div *ngSwitchCase=&quot;3&quot;&gt;\u00dc\u00e7&lt;\/div&gt;\r\n    &lt;div *ngSwitchCase=&quot;4&quot;&gt;D\u00f6rt&lt;\/div&gt;\r\n    &lt;div *ngSwitchCase=&quot;5&quot;&gt;Be\u015f&lt;\/div&gt;\r\n  &lt;\/div&gt;\r\n`\r\n})\r\nexport class AppComponent {\r\n  number: number;\r\n}\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131daki \u00f6rne\u011fi ele al\u0131rsak render edildi\u011finde a\u015fa\u011f\u0131daki gibi bir \u00e7al\u0131\u015fma sergileyecektir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/08\/Angular-Gelismis-Component-Yapilanmasi-ng-template.gif\" alt=\"Angular - Geli\u015fmi\u015f Component Yap\u0131lanmas\u0131 | ng-template\" width=\"324\" height=\"678\" class=\"aligncenter size-full wp-image-25489\" \/><\/a>Ayn\u0131 operasyonu <code>ng-template<\/code> ile a\u015fa\u011f\u0131daki gibi ger\u00e7ekle\u015ftirirsek e\u011fer ayn\u0131 davran\u0131\u015f\u0131 sergilemi\u015f olacakt\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  &lt;input type=&quot;number&quot; &#x5B;(ngModel)]=&quot;number&quot; max=&quot;5&quot; min=&quot;1&quot;&gt;\r\n  &lt;div &#x5B;ngSwitch]=&quot;number&quot;&gt;\r\n    &lt;ng-template &#x5B;ngSwitchCase]=&quot;1&quot;&gt;\r\n      &lt;div&gt;Bir&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template &#x5B;ngSwitchCase]=&quot;2&quot;&gt;\r\n      &lt;div&gt;\u0130ki&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template &#x5B;ngSwitchCase]=&quot;3&quot;&gt;\r\n      &lt;div&gt;\u00dc\u00e7&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template &#x5B;ngSwitchCase]=&quot;4&quot;&gt;\r\n      &lt;div&gt;D\u00f6rt&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template &#x5B;ngSwitchCase]=&quot;5&quot;&gt;\r\n      &lt;div&gt;Be\u015f&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n    &lt;ng-template ngSwitchDefault&gt;\r\n      &lt;div&gt;S\u0131f\u0131r&lt;\/div&gt;\r\n    &lt;\/ng-template&gt;\r\n  &lt;\/div&gt;\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 tasar\u0131msal a\u00e7\u0131dan \u015fablonlarla dinamik \u00e7al\u0131\u015fmalar ger\u00e7ekle\u015ftirmemizi sa\u011flayan ng-template \u00f6zelli\u011fini inceliyor olaca\u011f\u0131z. ng-template Nedir? ng-template, ng-container gibi sayfa \u00fczerinde HTML elementleriyle u\u011fra\u015fmaks\u0131z\u0131n bir b\u00f6l\u00fcm\/alan olu\u015fturmam\u0131za olanak sa\u011flayan ve Document Object&#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":[4650,2156,4649,4648,4647,2605,2604],"class_list":["post-25475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","tag-viewchild","tag-angular","tag-angular-ng-template","tag-ng-template","tag-ngtemplateoutlet","tag-templateref","tag-viewcontainerref"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25475","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=25475"}],"version-history":[{"count":11,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25475\/revisions"}],"predecessor-version":[{"id":25491,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25475\/revisions\/25491"}],"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=25475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=25475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=25475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}