Skip to content
This repository has been archived by the owner on Nov 22, 2018. It is now read-only.

Controller'lar

Sercan Gurbuz edited this page Dec 28, 2016 · 9 revisions

#BaseController

BaseController Tüm controller'in miras aldığı,temel form ve service injection implementasyonlarını içeren abstract controller sınıfıdır.

Aşagidaki sistem builtin servisleride inject olmaktadir

  • $rootScope: IRotaRootScope;
  • $scope: ng.IScope;
  • $window: ng.IWindowService;
  • $stateParams: ng.ui.IStateParamsService;
  • $document: duScroll.IDocumentService;
  • hotkeys: ng.hotkeys.HotkeysProvider;

###Properties

logger: Logger Servisi

logger: ILogger;

notification : Notification logger servisidir

notification: IBaseLogger

toastr: Toastr logger servisidir

toastr: IBaseLogger

console: Console logger servisidir

console: IBaseLogger

dialogs : Dialog servisi

dialogs: IDialogs;

config : App global config bilgilerinin bulunduğu sınıf.

config: IMainConfig;

constants : Uygulama genelindeki global constants objesi

constants: IConstants

routing: Routing sınıfı

 routing: IRouting;

localization : Localization servisi

localization: ILocalization;

rtForm : rtForm directive'nin scope üzerindeki form controller'i.

rtForm: ng.IFormController

isFormDirty,isFormValid,isFormInvalid,isFormPristine,isFormPending eventleri rtForm controller bilgisine göre uygun validasyon verisini döndürmektedir.

###Methods

isAssigned : Verilen value parametresine göre truety/falsy kontrolu yapar

 isAssigned(value: any): boolean ;

on : Mesaj listener eventini register eder.

on(eventName: string, fn: (...args: any[]) => void): void 

broadcast: Event broadcast eder.Register edilen eventler,scope destroy oldugunda,onlarda temizlenir.

 broadcast(eventName: string, ...params: any[]): void

#BaseModelController

Önemli : BaseModelController miras almak yerine,bu controllari miras alan diğer controller'lar kullanılmalıdır (BaseCrudController,BaseListController...)

Model ile ilgili base implementasyonları sağlayan abstract controller'dir.BaseController'dan miras alir.Temel görevi,asenkron model çagirimi,model erişimi,error yönetimi vs. gibi işlemlerdir.Tanımlama yaparken generic model tipini belirtmemiz gerekmektedir.Model IBaseCrudModel'i extend etmesi gerekiyor.

class BaseModelController<TModel extends IBaseCrudModel> extends BaseController

Aşagidaki sistem builtin servisleri inject olmaktadir

  • $q: ng.IQService;
  • $http: ng.IHttpService;

###Constructor

constructor(bundle: IBundle, options?: IModelPageOptions)

####Parametreler bundle : IBundle Sistem ve sayfaya özel injection servislerini barındıran dictionary options : IModelPageOptions Model sayfanın nasıl davranacagini ayarlayan settings'ler.

###Methods

getModel : Abstract temel model fetch methodu.Bu method model bilgisini set etmek için kullanılır.

Miras alan controllerde otomatik olarak veya konfigurasyona göre bu method çagirilmaktadir.Direk çağırım olmamalıdır

abstract getModel(modelFilter?: IBaseModelFilter): ng.IPromise<TModel> | TModel | ng.IPromise<IBaseListModel<TModel>> |
        IBaseListModel<TModel> | ng.IPromise<IPagingListModel<TModel>> | IPagingListModel<TModel>;

####Parametreler modelFilter: IBaseModelFilter Model bilgisini cekmek icin gerekli olan filtre bilgisidir.Örnegin,BaseCrudController'de ilgili kaydın filtresi {id: 5} şeklinde olabilir.Listeleme sayfalarında ise filtre kriterleridir.

Return Type : Override eden Controller tipine göre Literal Object,Array veya Promise olabilir.Promise datası Object veya Array olmali

loadedModel : Model yüklendikten sonra çalışan method.

loadedModel(model: TModel | IBaseListModel<TModel> | IPagingListModel<TModel>): void

Önemli: loadedModel eger override edilecekse,base loadedModel call edilmeli.

super.loadedModel(model);

####Parametreler model : TModel | IBaseListModel | IPagingListModel Model yüklendikten sonra,controller tipine göre single model,liste model veya paging list model döndürür

###IModelPageOptions newItemParamValue : Varsayilan id parametresinin varsayilan degeri olan "new" degerini override etmek için kullanılır.

newItemParamValue?: string 

newItemParamName : Varsayilan unique "id" parametresinin adını override etmek için kullanılır.

newItemParamName?: string;

initializeModel : true verilirse,initModel methodunu çaliştirarak,getModel'i tetikler.Miras alan controller'a göre farkli degerler alabilir.

Örnegin ListController'da eğer true verilirse,controller yüklenir yüklenmez getModel methodu çalişir ve grid'i bind eder.

initializeModel?: boolean;

#BaseCrudController

Bu controller detay form sayfalarının CRUD işlemlerinden sorumludur.BaseModelController'den miras alır.

Sayfa ,klasik olarak 2 farklı modda çalişir.

  1. Yeni Kayıt
  2. Düzeltme

Temel görevleri aşagidaki gibidir.

  • Model property tracking & dirty checking (Obserable Model)
  • Model validasyon işlemleri
  • Save process (Create & Update)
  • Delete process
  • rtCrudButtons handlers

Standart olarak sayfa düzeltme modunda açıldıgında,düzenlenecek modele ait unique bir parametre ister.Bu parametrenin varsayilan adi "id" 'dir

Örnek : Kullanıcılar state'i Url

url = /kullanicilar/:id

51 unique id li kayıt düzetme modunda acilacak

http://localhost:48626/#/kullanicilar/51

Yeni kullanıcı

http://localhost:48626/#/kullanicilar/new

Önemli : Detay sayfalar için oluşturulan unique parametre adı varsayilan "id" olmalı.Örnegin menu url bilgisi url: 'admin/urunler/:id' şeklinde tanımlanmalı.(Edukkan örnegi) Bazı istisnai durumlarda configure edilebilir.

Önemli : "id" parametresi yeni kayit modunda varsayılan "new" string bilgisini alir.Düzeltme modunda ise ilgili kaydın numeric id bilgisi parametre olarak geçilmelidir

Aşagidaki sistem builtin servislerini inject eder

  • $interval: ng.IIntervalService;
  • $timeout: ng.ITimeoutService;

Edukkan demo'sundaki urun controller'i inceleyebilirsiniz

###Constructor

constructor(bundle: IBundle, options?: ICrudPageOptions)

####Parametreler bundle : IBundle Sistem ve sayfaya özel injection servislerini barındıran dictionary options : ICrudPageOptions Crud sayfanın nasıl davranacagini ayarlayan settings'ler.

###Properties crudPageFlags : Sayfanın o anki modu hakkında bize bilgi verir

    crudPageFlags: ICrudPageFlags

Aşagidaki flag'lari alabilir

isNew?: boolean; // Yeni kayit
isSaving?: boolean, //Kayıt işlemi başladı
isDeleting?: boolean, //Silme işlemi başladı
isCloning?: boolean; //Kayıt kopyalanıyor.

validators : Validasyon servisi

validators: IValidators

caching : Caching servisi

 caching: ICaching;

model : Tanımlanan generic tip model bilgisi.IObserable ile ilgili Obserable Model sayfasına bakabilirsiniz

model: TModel & IObserableModel<TModel>

crudPageOptions : Crud sayfa ayarları

crudPageOptions: ICrudPageOptions

id: Sayfaya parametre olarak geçilen id bilgisini verir,this.$stateParams.id nin kısayoludur

id : string | number

isNew : Sayfa yeni modda ise true döndürür.

isNew: boolean

###Methods

revertBack : Model üzerinde yapılan tüm değişiklikleri geri alip,orjinal haline döndürür.Duzeltme modunda anlamlıdır.

revertBack(): void

initNewModel : rtCrudButtons tarafindan "Yeni Kayıt" işlemi icin çağırılan ilk methoddur.Exceptional durum harici override edilmemelidir.Bunun yerine newModel methodu kullanilmalidir

initNewModel(cloning?: boolean): ng.IPromise<TModel>

newModel : Yeni kayit model atamalari bu method içinde tanımlanmalidir.Contoller "Yeni kayıt" modunda açılırken çağirilir.

newModel(clonedModel?: TModel): ng.IPromise<TModel> | TModel

####Parameters clonedModel : TModel rtCrudButtons'dan "Kaydı Kopyala" seçildigi zaman,açik olan kaydin orjinal hali'dir.Bu model üzerinde gerekli (eger varsa) değişiklik yapılıp geriye döndürülmelidir.

Örnek : Edukkan urun controller

newModel(clonedModel?: IUrun): angular.IPromise<IUrun> | IUrun {
    const model = super.newModel(clonedModel) as IUrun;
    model.birimFiyat = 0;
    model.stokMiktari = 1;
    model.iliskiliUrunler = [];       
    return model;
}

Return Type : TModel veya Promise<TModel> olmali

initSaveAndContinue : rtCrudButtons'dan Kaydet & Devam butonu'na basılınca çalışan metthoddur.Exceptional durum harici override edilmemelidir

initSaveAndContinue(): ng.IPromise<TModel>

initSaveModel : rtCrudButtons'dan Kaydet veya Kaydet &Devam buttonuna basinca çalışan method.Exceptional durumlar hariç override edilmemelidir.Bunun yerine "saveModel" methodu kullanılmalıdır

initSaveModel(options?: ISaveOptions): ng.IPromise<TModel>

saveModel : rtCrudButtons'dan Kaydet veya Kaydet & Devam buttonuna basınca çalışan abstract method.Kayıt işlemleri bu method altında olmalidir.

abstract saveModel(options: ISaveOptions): ng.IPromise<ICrudServerResponseData>;

####Parameters

options: ISaveOptions Kayıt işlemi options bilgileri

Return Type : ICrudServerResponseData Save işlemi sonucunda Server tarafindan döndürülmesi beklenen interface tipi.

Önemli : Save işleminde restful servise gönderilecek model bilgisi options.jsonModelveya this.model.toJson() olmalı.Obserable model gönderilmemeli

Önemli : Eğer Rota server standart methodları kullanılmıyorsa,Restful service'lerde save işlemin sonucu ICrudServerResponseData tipine uyumlu olmak zorundadir.

beforeSaveModel : Bu method saveModel methodu çalişmadan önce çalişir.

 beforeSaveModel(options: ISaveOptions): ng.IPromise<IParserException> | void

Genel 2 görevi vardir

  1. Save işleminden önceki atamalar (userId vs..)
  2. Validasyon (Validasyon işlemleri için ayrıca Validators servisini inceleyebilirsiniz )

Örnek

beforeSaveModel(options: ISaveOptions): IP<IParserException> {
        return this.common.rejectedPromise<IParserException>({ message: 'Ups..!,Something went wrong', logType: LogType.Error });
    }

####Parameters

options: ISaveOptions Kayıt işlemi options bilgileri *Return Type : Validasyon yapılacaksa rejected promise döndürmeli.Datası IParserException tipinde olmali.*Eger sadece atama için kullanılacaksa void döndürmeli

afterSaveModel : Bu method model save işlemi tamamlandiktan sonra (Server kayıt işlemi) çalışır.

afterSaveModel(options: ISaveOptions): void

####Parameters

options: ISaveOptions Kayıt işlemi options bilgileri Return Type : void

initDeleteModel : rtCrudButtons'dan Delete butonuna basınca çalışan method.Exceptional durumlar haric kullanılmaması gerekiyor.Bunun yerine deletModel methodu kullanılmalı.

initDeleteModel(options: IDeleteOptions): ng.IPromise<any>

####Parameters

options: IDeleteOptions Delete işlemi options bilgileri

deleteModel : Model Delete işleminin yapılacagi method

deleteModel(options: IDeleteOptions): ng.IPromise<any>

####Parameters

options: IDeleteOptions Delete işlemi options bilgileri Return Type : Framework'un silme asenkron işleminin bittiği zamanı bilmesi için promise döndürülmesi gerekiyor.

beforeDeleteModel: Bu method Delete işlemi öncesinde çalişir.Görevi silme işleminden önceki diğer işlemler ve validasyondur.Aynı "beforeSaveModel" mantiğıyla çalişir.

beforeDeleteModel(options: IDeleteOptions): ng.IPromise<IParserException> | void

####Parameters

options: IDeleteOptions Delete işlemi options bilgileri *Return Type : Validasyon yapılacaksa rejected promise döndürmeli.Datası IParserException tipinde olmali.*Eger sadece atama için kullanılacaksa void döndürmeli

afterDeleteModel : Delete işlemi bittikten sonra çalışan method.

afterDeleteModel(options: IDeleteOptions): void

Return Type : void

###ICrudPageOptions

newItemParamValue : Varsayilan id parametresinin varsayilan degeri olan "new" degerini override etmek için kullanılır.

newItemParamValue?: string 

newItemParamName : Varsayilan unique "id" parametresinin adını override etmek için kullanılır.

newItemParamName?: string;

checkDirtyOnExit : Model dirty check işlemin yapılıp yapılmayacağini ayarlayan parametredir.Varsayılan true

checkDirtyOnExit?: boolean;

Not : Bu parametre ile model dirty oldugunda ve çıkış işlemi yapılmak istendiğinde kullanıcıya onay sorarak ,cevaba göre kayit işlemi yapıp,formdan çıkış yapar

parsers : Save & Delete işlemlerinden önce validasyonu sağlamak amacıyla save ve delete parser pipeline methodlari çaliştirilir. Save işlemi için varsayilan parser methodlari, checkAuthority,applyValidation,beforeSaveModel Delete işlemi için varsayilan parser methodlari, checkAuthority,applyValidation,beforeDeleteModel dir.Bu methodlara yeni ekleme & duzeltme yapılabilir.

parsers?: ICrudParsers;

crudButtonsVisibility : rtCrudButtons buttonlarının görünürlüklerini ayarlayan objedir.

crudButtonsVisibility?: ICrudButtonsVisibility;

Örnek :

this.crudPageOptions.crudButtonsVisibility.deleteButton = false;

postOnlyModelChanges : Bu property,Save işleminde,restful servise sadece modelin değişen alanlarını göndermek için kullanılır.

Not : Bu property true oldugunda modele ek olarak modifiedPropertiesdizisi eklenir.

changeIdParamOnSave : "Yeni kayıt" modunda Save işleminden sonra "id" parametresi ilgili modelin id bilgisi ile update edilerek form "Düzeltme moduna" geçer.Bu davranışı bu property ile disable edebiliriz.

changeIdParamOnSave?: boolean;

autoSave : Model bilgisini korumak amacıyla,belli interval araliğında localStorage'e kayıt eder.Recorvery durumda ise kullanıcıya onay sorarak kayıt edilmiş modeli geri yükler.Interval 30 saniyedir.

autoSave?: boolean;

readOnly : Formu sadece okuma modunda açmak için kullanılır.Kullanıcı herhangi bir değişiklik yapamaz.

readOnly?: boolean;

Örnek :

super(bundle, { autoSave: true });

enter image description here

###ISaveOptions

isNew : "Yeni Kayıt" modunda true döndürür

isNew?: boolean;

goon : "Kaydet & Devam et" butonuna basıldıgında bu flag true set edilir.

goon?: boolean;

showMessage : Eger false verilirse kayıt işlemi başarili bir şeklide sonlandiktan sonra toastr mesaji göstermez.Varsayilan true

showMessage?: boolean;

message : Custom kayıt başarılı mesajı.

message?: string;

jsonModel : Literal object model

jsonModel?: IBaseCrudModel;

redirectHandled : Eger afterSaveModel veya afterDeleteModel'de yönlendirme yapılırsa bu property true set edilmeli

redirectHandled?: boolean;

Örnek :

afterSaveModel(options: ISaveOptions): void {
        options.redirectHandled = true;
        this.routing.go("shell.content.musteri.vadeler.liste");
    }

ICrudServerResponseData

Save & Delete işlemi sonucunda server taraftan beklenen interface tipidir.

entity : Modelin server tarafta update/create edildikten sonra ki güncel hali.

entity?: IBaseCrudModel,

warningMessages : Server taraftan dönen warning mesajları

warningMessages?: Array<string>;

successMessages : Server taraftan dönen success mesajları

successMessages?: Array<string>;

infoMessages : Server taraftan dönen info mesajları

infoMessages?: Array<string>;

#BaseListController

Bu controller filtreleme & listeleme sayfaları için kullanılan base controller'dur.BaseModelController'dan miras almaktadır.Genel olarak filtre kriterleri ve gridden oluşmaktadir.Ayrıca rtListButtons eventlerini handle eder.

ÖNEMLİ : En az bir adet parametresiz rtGrid directive'i içermelidir.

Controller class tanımı 2 adet generic tip alır.

  1. TModel
  2. TModelFilter

TModel,grid datasının hangi model interface'inin arrayi olacağını ifade eder. TModelFilter grid datasini cekerken kullanacagimiz filtrenin tipini ifade eder.

class BaseListController<TModel extends IBaseCrudModel, TModelFilter extends IBaseListModelFilter>

Filter interface'i IBaseListModelFilterden miras almalı

interface ITodoFilter extends IBaseListModelFilter {
   ...
}

###Constructor

constructor(bundle: IBundle, options?: IListPageOptions)

####Parametreler bundle : IBundle Sistem ve sayfaya özel injection servislerini barındıran dictionary options: IListPageOptions Listeleme sayfasının ayarlarını içeren object

###Properties

gridApi: Varsayilan grid api bilgisi.Api hakkında bilgiyi ui-grid docs'dan alabilirsiniz.

 gridApi: uiGrid.IGridApi

gridOptions : Varsayilan grid'in ayarları.Grid options hakkında bilgiyi ui-grid docs'dan alabilirsiniz.

gridOptions: IGridOptions<TModel>

gridData : Varsayılan gridin data'sı

gridData: IBaseListModel<TModel>

gridSeletedRows : Varsayilan griddeki seçili olan satirlar.Seçim işlemi icin rtGrid directive'ini inceliyiniz.

gridSeletedRows: IBaseListModel<TModel>

**filter :**Filtre kriterlerini tanımladigimiz filtre objesi.HTML tarafinda vm.filter.**** şeklinde tanımlanmalı

filter: TModelFilter

**getGridColumns :**Varsayılan grid'in kolon bilgilerini döndüren method.Bu method'da ayrıca gridin options bilgileride guncellenebilir.

abstract getGridColumns(options: IGridOptions<TModel>): uiGrid.IColumnDef[]

Örnek :

Aşağıdaki örnek'te gridin kolon bilgilerini döndürmenin dışında,showDeleteButton özelliği set edilmiştir

getGridColumns(options: IGridOptions<IKategori>): uiGrid.IColumnDef[] {
        options.showDeleteButton = false;
        return [
            {
                field: 'kategoriAdi',
                displayName: 'Kategori Adi',
                width: '40%'
            },
            {
                field: 'ustKategoriAdi',
                displayName: 'Ust Kategori',
                width: '*'
            }
        ];
    }

clearAll : Grid ve filtre bilgisini temizler

clearAll(): void

clearGrid : Grid'i temizler

clearGrid(): void

**clearSelectedRows :**Seçili olan satırların seçimini kaldırır

clearSelectedRows(): void

initSearchModel : rtListButtons Ara buttonun handler'idir.Exceptional durum haric override edilmemelidir.Onun yerine getModel methodu kullanılmalı

initSearchModel(pager?: any): ng.IPromise<IBaseListModel<TModel>> | ng.IPromise<IPagingListModel<TModel>>

goToDetailState : Varsayılan grid'in edit butonuna bastıgımızda bu method çalışır.Ayrıca rtListButtons directive'indeki Yeni butonuna bastigimizda da bu method çalışır ve id parametresi undefined gider.

 goToDetailState(id: string): ng.IPromise<any>

####Parametreler id : string İlgili satirin id değeri.Yeni kayit'ta ise undefined gidicektir.

initDeleteModel : Grid üzerinde sil butonuna bastiginda ilk çalişan event.Exceptional durumlar hariç kullanılmaması gerekir.Bunun yerine deleteModel methodu kullanılmalı.

initDeleteModel(id: number): ng.IPromise<any>

####Parametreler id : number İlgili satirin id değeri.

initDeleteSelectedModels : Seçili olan satirları silmek için kullanılır.Exceptional durumlar hariç kullanılmaması gerekir.Bunun yerine deleteModel methodu kullanılmalı.Seçili olan satirlarin id bilgisi dizi olarak deleteModel methodu gecilir.

initDeleteSelectedModels(): ng.IPromise<any>

deleteModel : Grid üzerinde sil butonuna bastiginda çalişan event.İlgili modele ait silme işlemini bu method'ta yapmaliyiz.

 deleteModel(id: number | number[]): ng.IPromise<any> | void

####Parametreler id : number İlgili satirin id değeri veya seçilen satırların id dizi bilgisi. Return Type Promise veya void olabilir

##IListPageOptions

editState : Listeleme sayfasının detay sayfa olarak hangi state'e gidecegini bu ayar ile belirtiyoruz.Eger dinamik olarak custom bir state'e yönelenmesini istiyorsak goToDetailState methodunu override etmeliyiz

editState: string;

pagingEnabled : Varsayilan grid'de paging olup/olmayacagi ayarı.Varsayilan true.

pagingEnabled?: boolean;

pageSize : Varsayilan grid'de eger paging enabled ise,grid'in pageSize bilgisi

pageSize?: number;

showMesssage : Listeleme sayfassındaki rota'dan gelen mesajları disable eder

showMesssage?: boolean;

listButtonVisibility : rtListButtons üzerindeki buttonlarin görünürlüklerini ayarladıgımız object.

listButtonVisibility?: IListButtonsVisibility;

Örnek

this.listPageOptions.listButtonVisibility.deleteSelected = false

storeFilterValues : Girilen filtre bilgilerini sessionStore'a kayit ederek aynı listeleme sayfasına tekrar girdigimizde filtre bilglirini geri yüklemeye yariyor.Varsayilan false.

storeFilterValues?: boolean;

##IGridOptions

showEditButton : Varsayılan grid üzerindeki düzeltme butonu'nun visibility'sini ayaralar

showEditButton?: boolean;

**showDeleteButton :**Varsayılan grid üzerindeki silme butonu'nun visibility'sini ayaralar

showDeleteButton?: boolean;

rowFormatter : Grid satir renklendirmesi için kullanılır

rowFormatter?(row: uiGrid.IGridRowOf<TModel>): string;

####Parametreler row : uiGrid.IGridRowOf<TModel> Satir row bilgisi Return Type satira verilecek style class adi bilgisi olmali

Örnek

  getGridColumns(options: IGridOptions<IUrun>): uiGrid.IColumnDef[] {
        options.rowFormatter = (row) => {
            return row.entity.stokMiktari <= this.urunApi.minStokMiktari ?           'kritikStokMiktari' : '';
        }...

Yukardaki örnekte ürün stok miktarı minStok miktarından düşük ise ilgili rowun class'ina 'kritikStokMiktari' atanıyor.

showContextMenu : Varsayılan grid üzerinde eger context menu göstermek istiyorsak bu özellik kullanılmalı.

showContextMenu?: boolean;

Önemli: Context menü HTML content tanımlama yaparken ilgli template id'si contextmenu.html olmali

Örnek

options.showContextMenu = true;

Context menuyu aktif ettikten sonra ilgili template'i tanımlıyoruz

<script id="contextmenu.html" type="text/ng-template">
    <ul class="contextmenu">
        ....
    </ul>
</script>

Örnek için edukkan urunler sayfasına bakabilirsiniz


#BaseModalController

Modal pencerelerde kullanılacak controller'ların base controller'dur.BaseModelController'dan miras alir.Temel görevi modal implemantasyonlarıdır.

ÖNEMLİ : Modal pencereler custom controller belirtmeden açılırsa,varsayılan controller BaseModalController'dür.

Modal işlemleri için Dialogs servisini inceleyiniz Angular Bootstrap Model servisi icin bu dökümanı inceleyiniz

###Properties

$uibModalInstance : Angular Bootstrap Modal instance objesi

$uibModalInstance: ng.ui.bootstrap.IModalServiceInstance;

instanceOptions : Modal pencereye controller'dan gecilen parametre bilgileri.Model,params ve services property'lerini içerir.

instanceOptions: IModalInstanceOptions;

**params :**Modal'a instanceOptions'dan gecilen params parametresi

params: any

###Methods

modalResult : Modal pencereyi başarılı şekilde kapatmak için kullanılan method. Dialogs.showModal methodunun sonucu resolved promise olucaktir.Verilen parametre modal sonucu olarak dönecektir.Eger parametresiz çağırılırsa this.model geriye dönecektir.Custom işler için override edilebilir.

modalResult(data: any): void 

####Parameters data : any Sonuc promise'inin datasi Return Type : Resolved Promise

closeModal : Modal pencereyi başarısız olarak kapatmak için kullanılır.

closeModal(): void 

####Parameters Return Type : Rejected Promise

##IModalInstanceOptions

model : Modal controller'a geçilen model bilgisi

model?: any;

params : Model dışında controller'a gecilen extra parametre'ler

params?: any;

services : Eger custom controler kullanılmaz ise,BaseModalController'a service inject etmek icin kullanılan ve service isimlerini alan dizi

services?: string[];

Örnek

Aşagidaki örnek'te csuntom controller tanımlanmadan bir modal açıyoruz.Bu modal'a 'divisionApi', 'musteriApi' service'lerini inject ediyoruz.

 this.dialogs.showModal<IMTUyari>({
            size: 'lg',
            templateUrl: 'yenimusteriuyari.tmpl',
            instanceOptions: { model: uyari, services: ['divisionApi', 'musteriApi'] }
        }).then((model): void => {
            if (model.modelState === ModelStates.Detached)
                this.model.musteriUyarilar.add(model);
        });