AngularJS’de Neden Modülleri Kullanırız
Bir modül farklı bölümleri bir arada tutan bir yapıştırıcıdır. Örn: kontroller, servisler, bildirimler, filitreler bunlardan bazılarıdır. Bu yazıda controller (kontroller) hakkında bilgi vereceğim. İlerleyen yazılarda servisler, bildirimler, filtreler hakkında makaleler olacak.
Neden Modüller Gerekli
Modülü bir programın main() metodu olarak düşünebiliriz. Programlardaki main metodları bir çok parçayı bir araya getirir. Bir araya getirilen parçalar burada birleştirilip işlenir.
Angular çalıştığında hangi farklı parçaları bir araya getirmesi gerektiğini ve işleyeceğini buradan öğrenir.
Modül kullanımının birkaç farklı yaklaşımı var. Bir yazı ile tüm avantajlarını anlamak mümkün değildir. İlerleyen yazılarda yada angular ile daha fazla kodlama yaptıkça modül kullanmanın avantajlarını anlayacaksınız.
AngularJS’de modül nasıl yazılır
Angularda modülü en basit haliyle aşağıdaki gibi hazırlayabilirsiniz. Angular module() medodunu kullanarak bir modül hazırlar. Aşağıdaki kod ile ornekModul adında bir angularjs modülü oluşturulmuştur.
1 2 3 |
var ornUyg= angular.module("ornekModul", []) |
- İlk parametre modülün adını ifade etmektedir.
- İkinci parametre modül için gerekli olan bağımlılıkları yada diğer modülleri ifade eder.
Bir modül başka bir modüle bu şekilde bağlanabilir. Modül bağımlılıklarını daha sonraki yazılarda değerlendireceğiz. Dikkat etmişsinizdir. Yukarıda yazdığımız modül başka modüller ile bağlantılı değildir. Bu yüzden dizinin içinde herhangi bir değer yoktur. Modül başka modüller ile bağlantılı değilse boş dizi göndeririz.
AngularJS’de Controller Nedir
Angularda controller bir javascript fonksiyonudur. Controllerin görevi bir view(görüntü) için bir model oluşturmaktır. Model veriyi ifade eder. Gerçek bir uygulamada controller bir servisten yada veritabanından veri çeker.
AngularJS’de Controller Nasıl Oluşturulur
Çok basit, Aşağıdaki gibi bir değişkene fonksiyon atayarak bir controller oluşturabiliriz.
1 2 3 4 5 |
var ornekController= function ($scope) { $scope.mesaj= "AngularJS Örnekleri"; } |
$scope Nedir
Yukarıda yazdığımız controllerda $scope adında bir parametreyi fonksiyona geçirdiğimizi farketmişsinizdir. Angularda biz $scope anahtarını modeli tutturmak için kullanıyoruz. (Model için gerekli olan metodlar da buna dahil) Tutturduğumuz model ileride görüntü(view) tarafından yakalanacaktır.
Yani controller’a geçtğimiz $scope parametresi modeli tutarak view içinde ulaşmamıza imkan veriyor.
AngularJS’de Controllerı Modüle Nasıl Bağlarız
Controller nesnemizi modüle bağlamak için modülün nesnesinin controller metodunu kullanıyoruz. İfade karışık gelmiş gibi görünebilir. Aşağıdaki örnek bunu açıklayıcı şekilde yazılmış durumda. Burada oluşturulmuş olan modülün controller metodununa sahip olduğunu bilmek önemli.
1 2 3 |
ornUyg.controller("ornekController", ornekController); |
Tanımlamanın tamamını tekrar yazarsak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//Model Oluşturma var uygulama= angular.module("ilkModul", []); //Controller Oluşturma var ornekController=function($scope) { $scope.mesaj="AngularJS Ornek"; } // Controllerı modüle kaydettirme uygulama.controller("ornekController", ornekController); |
Yukarıda gösterilen kodu aşağıdaki gibi de yazmak mümkündür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//Modül Oluşturma var uygulama= angular.module("ornekModul", []); //Tek seferde controllerı modüle bağlama. En çok kullanılan yöntem uygulama.controller("ornekController",function($scope) { $scope.mesaj="AngularJS Örnek"; }); |
Angular uygulaması oluşturuldu peki modül nasıl kullanır?
Ng-app yönergesi ile modül adını ilişkilendirerek kullanırız. (Not: drirective=yönerge)
1 2 3 |
ng-app="ornekUyg" |
Benzer şekilde ng-controller ilede control adını ilişkilendiriririz.
1 2 3 |
ng-controller="ornekController" |
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!doctype html> <html ng-app="ornekModul"> <head> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <script src="script.js"></script> </head> <body> <div ng-controller="ornCtrl"> {{ mesaj }} </div> </body> </html> |
script.js
1 2 3 4 5 6 7 8 9 |
//Modül Oluşturma var app = angular.module("ornekModul", []); // Controllerın Modüle Bağlanması app.controller("ornCtrl", function ($scope) { $scope.mesaj = "AngularJS Merhaba Dünya"; }); |
AngularJS ile ilgili diğer yazıları da okumak istermisiniz.
[…] Bu yazıda Angular içindeki Controller yapısı ve kullanımını anlatmaya devam edeceğiz. Controller yapısı ile ilgili ilk makalesi okumadıysanız 2. yazıyı okumanızı tavsiye ederim… […]
[…] Konu 2: AngularJS Modül Yapısı […]