Bileşen Geliştirme (Taslak) - ilgilenio/Otag GitHub Wiki
#Otağ Bileşenleri
1-) Yapı / Çağrılma
Bileşenler bir Öge'nin belirli işleri yapabilmesi için özelleştirilmiş ve geliştirilmiş halidir.
'₺Bileşen'.init(Girdi,Girdi2);
'₺Bileşen:Girdi,Girdi2'.init()
'#Resimler'.extend('₺Bediz');
Bileşenler yukarıdaki biçimlerde çağrılabilmektedir.
Bu yüzden bir Bileşen this ile başlamalıdır .
O.UI.Bileşen=function(girdiler){
return this.init();
}
2-) Veri Arayüzü
Otağ'da Ögelerin veri arayüzü vardır, Bileşenlerin de aynı şekilde veri arayüzü olmalıdır.
O.UI.Bileşen=function(girdiler){
return this.has({
a:'a',
b:'input[type="text"]'
});
}
var Öge='₺Bileşen'.init();
console.log(Öge.val); //{a: null, b: null}
O.ready.then(b=>b.append(Öge)); //Sayfaya ekle
Bir value özelliği tanımlayarak öntanımlı arayüzün üstüne çıkabilirsiniz.
O.UI.Bileşen=function(girdiler){
return this.has({
a:'a'.set('Adınız:'),
b:'input[type="text"]'
}).prop({
value:function(){
return this.V('b').value;
}
});
}
var Öge='₺Bileşen'.init();
console.log(Öge.val); // null
O.ready.then(b=>b.append(Öge)); //Sayfaya ekle
Yukarıdaki örnekte bir value yöntemi tanımlayarak Öge'nin arayüzünü yalnızca b adlı alt ögesinin değeri olacak şekilde ayarlamış olduk. Ancak bu tek yönlü olduğu için yeterli değildir. Bileşenin değeri dışarıdan da değiştirilebilmelidir. Bunun için bir .set yöntemi tanımlanmalıdır.
O.UI.Bileşen=function(girdiler){
return this.has({
a:'a'.set('Adınız:'),
b:'input[type="text"]'
}).prop({
value:function(){
return this.V('b').value;
},
set:function(value){
this.V('b').value=value;
return this; // ! Bunu yazmak önemli
}
});
}
var Öge='₺Bileşen'.init();
console.log(Öge.val); // null
O.ready.then(b=>b.append(Öge)); //Sayfaya ekle