Backbone Model

Merhaba arkadaşlar, bu yazımda Backbone Model konusuna değinmeye çalışacağım.

Verileri organize etmek için birbiri ile ilişkili olanları belli modellere uyarlarız. Aslında bir template/taslak/şablon/class vs. gibi de isimlendirebilirsiniz. Sözünü  ettiğiniz her MVC yapısında Model önemli bir yer tutar. Uygulamamıza ait tüm datalar bizim modellerimizdir. Backbone bu konuda bize geniş bir özellik listesi sunmakta. Validation, localStorage yada servis üzerinde data persist işlemi gibi özellikler mevcut.

Bir önceki yazıdan hatırlayabileceğiniz gibi bir Backbone.js Model’ini şu şekilde oluşturabiliyorduk;

Bir Model oluşturmamız için gereken işlem Backbone.Model sınıfından bunu extend etmemizdir. İnherit olarak da Model oluşturabiliriz;

Şimdi de model üzerinden bir nesne oluşturalım;

Nesnemizi siledebiliriz, bunun için model üzerinden destroy() methodunu çağıralım ;

Not : destroy() methodunun sonucunu dinleyebiliriz;

Modelimizin bir kopyasını oluşturalım;

Model Attributes

Modelimiz üzerinde attribute kullanalım. Java’daki instance variable

Yukarıdaki name, surname ve age alanları model attribute’dır. Model attr’ler ” , ” ile ayrılır.

Default attr kullanalım, bunun için default anahtar kelimesini kullanacağız;

Nesne oluşturalım;

Not : person.name ifadesi invalid bir durumdur. Backbone , attr için get methodlarını kendisi yazar. Atrr’lere bu method üzerinden erişebiliriz.

Model üzerinde attr set edelim;

* Tek tek set edebileceğimiz gibi bir kerede de set edebiliriz.

* Json output verelim, aşağıdaki satırı her attr set ettikten sonra yazalım. Objenin json halini consol üzerinde görebiliriz ;

2015-03-21 15:12:56

Model üzerinde attribute olup olmadığını check edelim;

Modelimiz için fonksiyon tanımı yapalım ve kullanalım;

Modelimiz üzerinde validasyon kullanalım;

Modelimiz içerisine validate ekledik şimdi kullanalım;

* Consol’da “Age must be positive.” hatasını görebiliriz.

Not : validate , isValid  ve validationError methodları underscore.js ‘nin sağladığı methodlardır.

Constructor/İnitialize of Model

Modelimiz üzerinde constructor ve initialize oluşturabiliriz. Kelime anlamı olarak aynı gibi gözükse de ufak biraz fark vardır.

initialize ;

Modelimizden nesne oluşturduğumuzda initalize çalışacaktır.

Bir backbone model objesi oluşturulduğunda constructor çağrılır. Constructor ise initalize methodunu çağırır. Consctructor yazalım;

* Bu şekilde obje oluşturduğumuzda önce constructor daha sonra initalize methodları çağrılacaktır. Ancak constructor’un bu şekilde bırakırsak çalışmayacaktır. Consol’a baktığımızda constructor çalışırken initalize methodunun çağrılmadığı görünecektir. Constructor methodunu şöyle değiştirelim;

* Yukarıdaki şekilde constructor yazdığımız zaman doğru bir şekilde objemiz oluşturulacaktır. Kendi ihtiyaçlarımıza göre constructor/initalize methodlarını override edebiliriz.

Yazımı burada sonlandırmak istiyorum arkadaşlar. Bir sonraki yazımda Modelimiz üzerinde kullanabileceğimiz başka attr’lerden ve modelin persist olayından bahsedicem.

 

Mutlu kalın , kod’la kalın ve bol bol çay için

~ Alican Akkuş

 

1466 Total Views 1 Views Today

  • Ertuğrul Can Aydın

    javascript bilmeden backbone işte bu tam türk kafası

    • AlicanAkkus

      Merhaba, yazılarda bir yanlislik olduğunu düşünüyorsanız bana bildiriniz. Hakkımda kısmında ki iletişim adreslerinden benimle iletişime geçebilirsiniz. Teşekkürler!