﻿
{"id":3348,"date":"2015-10-31T13:00:00","date_gmt":"2015-10-31T13:00:00","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3348"},"modified":"2015-10-31T13:00:00","modified_gmt":"2015-10-31T13:00:00","slug":"knockoutjs-template-yapisinda-data-ve-as-parametreleri","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/knockoutjs-template-yapisinda-data-ve-as-parametreleri\/","title":{"rendered":"KnockoutJS Template Yap\u0131s\u0131nda Data ve As Parametreleri"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bir \u00f6nceki <a href=\"http:\/\/www.gencayyildiz.com\/blog\/knockoutjs-template-yapisi\/\" target=\"_blank\">KnockoutJS Template Yap\u0131s\u0131<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mda KnockoutJS mimarisinde Template yap\u0131s\u0131na giri\u015f yapm\u0131\u015ft\u0131k.Tabi ilgili makele Template yap\u0131s\u0131ndaki foreach kontrol\u00fcyle ilgili bir \u00f6rnekle seyredilmi\u015fti.Bu yaz\u0131m\u0131zda ise Template yap\u0131s\u0131ndaki di\u011fer kontrol yap\u0131lar\u0131na detayl\u0131ca de\u011finece\u011fiz.<\/p>\n<p><em><strong>data parametresi<\/strong><\/em><br \/>\n\u00d6nceki yaz\u0131ma g\u00f6z atarsan\u0131z e\u011fer, datalar\u0131m\u0131z\u0131n bulundu\u011fu bir dizide foreach parametresi sayesinde d\u00f6nerek Template yap\u0131s\u0131 ile ilgili alana gerekli verileri basma i\u015flemini ele alm\u0131\u015ft\u0131k.Data parametresi sayesinde bir data dizisinden ziyade bir tek data verisini Template yap\u0131s\u0131yla istedi\u011fimiz yere basabiliyoruz.<\/p>\n<p>\u00d6rnek olarak elimizde a\u015fa\u011f\u0131daki gibi bir ViewModel yap\u0131m\u0131z olsun.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;script type=&quot;text\/javascript&quot;&gt;\r\n    function VMOkul() {\r\n        Ogrenci = { Adi: &quot;Gen\u00e7ay&quot;, SoyAdi: &quot;Y\u0131ld\u0131z&quot;, Numarasi: 11040355 };\r\n        Ogretmen = { Adi: &quot;Nurettin&quot;, SoyAdi: &quot;\u015eim\u015fek&quot;, Dersi: &quot;LMS&quot; };\r\n    }\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>Bu ViewModel i\u00e7erisinde olu\u015fturulan Ogrenci ve Ogretmen propertylerindeki verileri Template yap\u0131s\u0131nda data parametresini kullanarak a\u015fa\u011f\u0131daki gibi yazd\u0131rabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div data-bind=&quot;template: {name: 'OgrenciTemplate', data: Ogrenci}&quot;&gt;&lt;\/div&gt;\r\n&lt;div data-bind=&quot;template: {name: 'OgretmenTemplate', data: Ogretmen}&quot;&gt;&lt;\/div&gt;\r\n\r\n&lt;script id=&quot;OgrenciTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;h4&gt;\u00d6\u011frenci&lt;\/h4&gt;\r\n    &lt;p&gt;&lt;strong&gt;Tip : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Tip&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Adi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: SoyAdi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Numaras\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Numarasi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n&lt;\/script&gt;\r\n&lt;script id=&quot;OgretmenTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;h4&gt;\u00d6\u011fretmen&lt;\/h4&gt;\r\n    &lt;p&gt;&lt;strong&gt;Tip : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Tip&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Adi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: SoyAdi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n    &lt;p&gt;&lt;strong&gt;Dersi : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Dersi&quot;&gt;&lt;\/span&gt;&lt;\/p&gt;\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ViewModeldeki veri yap\u0131lar\u0131n\u0131 data parametresi sayesinde ilgili alanlara yans\u0131tm\u0131\u015f oluyoruz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3349\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m.png\" alt=\"KnockoutJS Detayl\u0131ca Template Yap\u0131s\u0131n\u0131 Ele Alal\u0131m\" width=\"163\" height=\"367\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m.png 163w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m-133x300.png 133w\" sizes=\"auto, (max-width: 163px) 100vw, 163px\" \/><\/a><\/p>\n<p><em><strong>as parametresi<\/strong><\/em><br \/>\nBu parametre genellikle property de\u011ferine sahip olmayan array yap\u0131lar\u0131ndaki verilere ula\u015fabilece\u011fimiz bir isim tan\u0131mlamak i\u00e7in veya template yap\u0131s\u0131nda birden fazla foreach kullanacaksak ve bu d\u00f6ng\u00fcler i\u00e7 i\u00e7e bir yap\u0131da olacaksa e\u011fer d\u00f6ng\u00fclerin veri k\u00fcmelerine alias yani bir sembolik isim tan\u0131mlamak i\u00e7in kullan\u0131lmaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    function VMOkul() {\r\n        Ogrenciler = ko.observableArray(&#x5B;\r\n            {\r\n                Adi: &quot;Gen\u00e7ay&quot;,\r\n                SoyAdi: &quot;Y\u0131ld\u0131z&quot;,\r\n                AldigiDersler: &#x5B;&quot;A Dersi&quot;, &quot;B Dersi&quot;, &quot;C Dersi&quot;]\r\n            }, {\r\n                Adi: &quot;Mehmet&quot;,\r\n                SoyAdi: &quot;Suba\u015f\u0131&quot;,\r\n                AldigiDersler: &#x5B;&quot;D Dersi&quot;, &quot;E Dersi&quot;, &quot;F Dersi&quot;]\r\n            }, {\r\n                Adi: &quot;Ceylan&quot;,\r\n                SoyAdi: &quot;Kayap\u0131nar&quot;,\r\n                AldigiDersler: &#x5B;&quot;G Dersi&quot;, &quot;H Dersi&quot;, &quot;I Dersi&quot;]\r\n            }, {\r\n                Adi: &quot;Nurettin&quot;,\r\n                SoyAdi: &quot;Saglam&quot;,\r\n                AldigiDersler: &#x5B;&quot;\u0130 Dersi&quot;, &quot;O Dersi&quot;, &quot;\u00d6 Dersi&quot;]\r\n            }\r\n        ]);\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki ViewModeldeki Ogrenciler dizi yap\u0131s\u0131 tan\u0131mlanm\u0131\u015ft\u0131r.Dikkat ederseniz AldigiDersler propertyside bir array yap\u0131s\u0131d\u0131r.\u015eimdi biz hem Ogrenciler dizi yap\u0131s\u0131 i\u00e7erisinde d\u00f6nerek listeleme yapaca\u011f\u0131z, bunun yan\u0131nda her \u00f6\u011frencinin ald\u0131\u011f\u0131 dersleri tutan AldigiDersler propertysindeki dizi yap\u0131s\u0131 i\u00e7erisinde de d\u00f6nece\u011fiz.AldigiDersler dizisi i\u00e7erisindeki verilerin bir property de\u011ferleri olmad\u0131\u011f\u0131 i\u00e7in bunlara as parametresiyle tan\u0131mlad\u0131\u011f\u0131m\u0131z isim sayesinde ula\u015faca\u011f\u0131z.Bir yandan da Ogrenciler dizisindeki verilerede i\u00e7 i\u00e7e foreach d\u00f6ng\u00fcs\u00fcndeki o anki \u00fcst de\u011fere ula\u015fmak i\u00e7in as parametresiyle ayr\u0131 bir isim tan\u0131mlayarak i\u015flemlerimizi ger\u00e7ekle\u015ftirece\u011fiz.<\/p>\n<p>Lakin,<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div data-bind=&quot;template: {name: 'OgrencilerTemplate', foreach:Ogrenciler}&quot;&gt;&lt;\/div&gt;\r\n\r\n&lt;script id=&quot;OgrencilerTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;ul&gt;\r\n        &lt;li&gt;\r\n            &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Adi&quot;&gt;&lt;\/span&gt;\r\n            &lt;br \/&gt;\r\n            &lt;strong&gt;Soyad\u0131: &lt;\/strong&gt;&lt;span data-bind=&quot;text: SoyAdi&quot;&gt;&lt;\/span&gt;\r\n        &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>e\u011fer bu \u015fekilde bir kullan\u0131m yaparsak sadece Ogrenciler isimli array yap\u0131m\u0131zdaki elemanlar\u0131n Adi ve SoyAdi property de\u011ferleri ekrana yazd\u0131r\u0131lacakt\u0131r.\u015eimdi bu yap\u0131ya AldigiDersler dizi yap\u0131s\u0131ndaki d\u00f6ng\u00fcy\u00fcde ekleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div data-bind=&quot;template: {name: 'OgrencilerTemplate', foreach:Ogrenciler}&quot;&gt;&lt;\/div&gt;\r\n\r\n&lt;script id=&quot;OgrencilerTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;ul&gt;\r\n        &lt;li&gt;\r\n            &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Adi&quot;&gt;&lt;\/span&gt;\r\n            &lt;br \/&gt;\r\n            &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: SoyAdi&quot;&gt;&lt;\/span&gt;\r\n            &lt;br \/&gt;\r\n            &lt;ul data-bind=&quot;template : {name: 'AldigiDerslerTemplate', foreach: AldigiDersler, as: 'Ders'}&quot;&gt;&lt;\/ul&gt;\r\n        &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n&lt;\/script&gt;\r\n\r\n\r\n&lt;script id=&quot;AldigiDerslerTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;span data-bind=&quot;text: Ders&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer &#8220;AldigiDerslerTemplate&#8221; isminde bir template tan\u0131mlanmakta ve bu template yap\u0131s\u0131nda foreach parametresine &#8220;AldigiDersler&#8221; isimli dizi yap\u0131s\u0131 verilmektedir.Lakin &#8220;AldigiDersler&#8221; dizi yap\u0131s\u0131n\u0131n i\u00e7indeki verilere ula\u015fabilece\u011fimiz bir property ad\u0131 bulunmad\u0131\u011f\u0131 i\u00e7in bunlara as parametresiyle atad\u0131\u011f\u0131m\u0131z &#8220;Ders&#8221; ismiyle ula\u015fabilmekte ve i\u015flemlerimizi &#8220;AldigiDerslerTemplate&#8221; isimli template scriptinde ger\u00e7ekle\u015ftirebilmekteyiz.<\/p>\n<p>as parametresiyle ilgili ek olarak ekleyebilece\u011fimiz i\u015flemde Ogrenciler dizisindeki o anki elemana i\u00e7teki d\u00f6ng\u00fcde ula\u015fabilmektir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div data-bind=&quot;template: {name: 'OgrencilerTemplate', foreach:Ogrenciler, as: 'Ogrenci'}&quot;&gt;&lt;\/div&gt;\r\n\r\n&lt;script id=&quot;OgrencilerTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;ul&gt;\r\n        &lt;li&gt;\r\n            &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: Adi&quot;&gt;&lt;\/span&gt;\r\n            &lt;br \/&gt;\r\n            &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;&lt;span data-bind=&quot;text: SoyAdi&quot;&gt;&lt;\/span&gt;\r\n            &lt;br \/&gt;\r\n            &lt;ul data-bind=&quot;template : {name: 'AldigiDerslerTemplate', foreach: AldigiDersler, as: 'Ders'}&quot;&gt;&lt;\/ul&gt;\r\n        &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n&lt;\/script&gt;\r\n\r\n\r\n&lt;script id=&quot;AldigiDerslerTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;span data-bind=&quot;text: Ders&quot;&gt;&lt;\/span&gt;\r\n        -\r\n        &lt;span data-bind=&quot;text: Ogrenci.Adi&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer &#8220;OgrencilerTemplate&#8221; isimli Template yap\u0131s\u0131na as parametresiyle o an foreach d\u00f6ng\u00fcs\u00fcnde elde tutulan nesneyi tan\u0131mlayacak &#8220;Ogrenci&#8221; de\u011ferini vermi\u015f olduk.Bu &#8220;Ogrenci&#8221; de\u011feri sayesinde &#8220;AldigiDerslerTemplate&#8221; isimli template yap\u0131s\u0131nda \u00fcst d\u00f6ng\u00fcdeki o anki nesneye ula\u015fabiliyor ve istedi\u011fimiz de\u011feri yazd\u0131rabiliyoruz.<\/p>\n<p>\u00d6rnektede g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;Ogrenci.Adi&#8221; komutuyla foreach d\u00f6ng\u00fcs\u00fcndeki o anki \u00f6\u011frenci nesnesini elde ediyor ve Adi de\u011ferini yazd\u0131rabiliyoruz.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m-2.png\" alt=\"KnockoutJS Detayl\u0131ca Template Yap\u0131s\u0131n\u0131 Ele Alal\u0131m - 2\" width=\"193\" height=\"425\" class=\"aligncenter size-full wp-image-3352\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m-2.png 193w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJS-Detayl\u0131ca-Template-Yap\u0131s\u0131n\u0131-Ele-Alal\u0131m-2-136x300.png 136w\" sizes=\"auto, (max-width: 193px) 100vw, 193px\" \/><\/a><\/p>\n<p>San\u0131r\u0131m bu yaz\u0131mlada beraber KnockoutJS mimarisinde template yap\u0131s\u0131n\u0131 ortalama esneklikte kullanabilece\u011finiz t\u00fcm parametreleri tan\u0131tm\u0131\u015f oldum.<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar dilerim&#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>Bir \u00f6nceki KnockoutJS Template Yap\u0131s\u0131 ba\u015fl\u0131kl\u0131 yaz\u0131mda KnockoutJS mimarisinde Template yap\u0131s\u0131na giri\u015f yapm\u0131\u015ft\u0131k.Tabi ilgili makele Template yap\u0131s\u0131ndaki foreach kontrol\u00fcyle ilgili bir \u00f6rnekle seyredilmi\u015fti.Bu yaz\u0131m\u0131zda ise Template yap\u0131s\u0131ndaki di\u011fer kontrol yap\u0131lar\u0131na detayl\u0131ca de\u011finece\u011fiz. data parametresi&#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":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[796],"tags":[823,822,820,821,797,250],"class_list":["post-3348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knockoutjs","tag-as","tag-as-parametresi","tag-data","tag-data-parametresi","tag-knockoutjs","tag-template"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3348","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=3348"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3348\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}