ViewEngine
ViewEngine
ViewEngine static bir sınıftır. Uygulamadaki tüm View ve bileşenleri yönetmek için kullanılır.
class ViewEngine {
}
Functions
View/Bileşen Yükleme
public static loadView(_args: LoadViewArgs) ;
getViewPath
Verilen adresi belirtlen parametrelerle birlikte tam adresi verir.
public static getViewPath(route: string, routeParams: IKeyValuePair[] = null);
Destroy
public static destroy(componentInstance, args: LoadViewArgs = null);
getViewInstance
public static getViewInstance(args: LoadViewArgs): any;
bindActionsAndRules
Bir View yüklendikten sonra Click, Change ve benzer Event bağlantılarını kurar. Plugin tanımlarını yapar. UIKit nesnelerini yükler. LoadView metodu bu işlemi kendiliğinden yapar. Eğer klasik yöntemlerle manuel bir içerik oluturuyorsanız bu metodu çağırıp ViewEngine kurallarını işletebilirsiniz.
public static bindActionsAndRules(target: string, instanceVariable: string) ;
}
Koşullu Yükleme
public static executeRule_If(target: string, instanceVariable: string);
/*****/
Uzantılar ve Injection
ViewEngine’de bazı işlemler öncesinde araya girecek kodların çalışmasını sağlayabilirsiniz. Bunun için EJect sınıfları kulanılır.
ViewEngine için belirli işlemler öncesinde kullanılmak istenen sınıfların çağrılması içindir. Angular’daki Guard gibi çalışır.
public static registerExtensions(extensions: IViewEngineExtensions): void;
/****/
Model İşlemleri
public static setModel(data: any) {
ViewEngine._model = data;
}
public static getModel() {
return ViewEngine._model;
}
Validations
public static valdor($trigger) {
var validationTarget = $trigger.attr("data-val-target");
var customValidationFunction = $trigger.attr("data-val-function");
}
return isValid;
}//end valdor
Custom Validation
var customValidationFunction = $trigger.attr(“data-val-function”);
Field and Properties
data-outlet='master'
public static runningInstances: any = {};
public static config: AppConfig;
public static culture: BaseCulture;
public static UI: UIHelper;
Attributes
Events
Click
ng-click
Double Click
dbl-click
Change
ng-change
Kurallar
IF Rule
Bu kural ile ViewEngine.loadView
fonksiyonuyla yüklenen bir view’da yer alan alanlar, kural True değer verdiğinde doğrudan silinir ve çalışma zamanında geri getirilemez. Yani içerik yüklenirken koşul sağlandığında gösterilir, diğer durumda html nesnesi doğrudan kaldırılır/silinir.
Angular’da olduğu gibi değişken değeri değiştiğinde tekrar render edilmez.
Bu kuralı sayfa yüklenirken ve bir defa kontrol edilmek istenen statik ekranlarda kullanmak daha doğru olacaktır.
data-view-if
Örnek
Aktif View’da bir alanı kullanıcının yetkisine bağlı olarak gösterip/göstermemek için aşağıdaki kod bloğu kullanılır. Kullanıcının yetkisi yoksa ilgili div bloğu View yüklenirken silinecektir.
<div data-view-if="_co.hasAnyRight">
some html contents
<div>
Bu örnekte ise, kullanıcının silme yetkisi yoksa sil butonu ekrandan kaldırılıyor.
<button type="button" data-view-if="_co.hasDeleteRight">{res:Delete}<div>
Show Rule
Bu kural ile ViewEngine.loadView
fonksiyonuyla yüklenen bir view’da yer alan alanlar, kural True değer verdiğinde gösterilir diğer durumda gizlenir. Kullanıcı davranışına göre gizlenip gösterilecek alanlar için tercih etmek doğrudur.
Çalışma zamanında yaptığı HTML element’in CSS değeriyle oynamaktır. Örneğin display:none
veya display:block
.
data-view-show
Örnek
Aktif View’da bir alanı, model nesnesinin durumuna göre gizleyip göstermek için aşağıdaki kod bloğu kullanılır. Eğer model nesnesi null değilse div görünür olacak, null olduğunda ise görünmeyecek.
<div data-view-show="model != null">
some html contents
<div>
Bu örnekte ise, model.Id değeri 0’dan büyükse sil butonu görünür, değilse görünmez.
<button type="button" data-view-show="model.Id>0">{res:Delete}<div>
Leave a Reply