SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
AngularJS ile tek sayfa web uygulamaları
MVC, MVVM, MVP ve MVW/MV* nedir?
● Model–View–Controller (MVC) kullanıcı arayüzleri geliştirmek için bir mimari kalıp.
● MVC UI geliştirmede yeni ufuklar açmıştır. Kendi sorumlulukları (single responsibility) üzerinden
yazılım yapıları oluşturma ve tanımlama yaklaşımlarının ilklerinden biridir.
Single Page Application nedir?
● Tüm uygulama dosyaları (HTML, JavaScript ve CSS) kullanıcı tarafına tek bir seferde yüklenir.
● Aslında bir tane uygulama dosyası vardır. Diğer html şablonları ve datalar, dinamik olarak,
gerektikçe bu ana dosyaya gömülür.
● Amaç daha akıcı bir kullanıcı deneyimi sunmaktır.
● Masaüstü uygulaması gibi hızlı çalışan web uygulamaları geliştirilebilir.
Neden adı AngularJS? Neden kullanılan namespace “ng”?
● Çünkü HTML’de açısal parantezler (“<” ve “>” kullanılır)
● “ng”nin telaffuzu “Angular”a benzer
AngularJS nedir?
● Bir JavaScript kütüphanesi değildir. Direk çağırıp kullanabileceğimiz metodlar sunmaz. (angular
global objesi ve sunduğu birkaç metot dışında)
● jQuery gibi bir DOM manipülasyon kütüphanesi (jQLite adında küçültülüp özelleştirilmiş bir jQuery
kütüphanesi kullansa da) değildir
● Web uygulamalarında daha çok HTML tarafına odaklanır
● MVC, MVVM, MVP ve MVW/MV* (Model View Whatever) mimari kalıplarına uyar
● Single Page Application (SPA) geliştirilir
● Bir Javascript Web Çatısıdır (Framework)
● AngularJS, web uygulamasının farklı bileşenlerini birbirine bağlarken ve kullanıcı arayüzleri
geliştiriyorken, deklaratif kodun imperatif koddan daha iyi olduğu felsefesi etrafında geliştirilmiştir
Neden AngularJS?
● Direktifler, yeni tag’ler, ifadeler, özellikler, HTML şablonları ile HTML’i geliştirir
● TDD’ye teşvik eder
● MVC/MVVM mimari tasarım kalıplarına teşvik eder
● Kod yeniden kullanılırlığı (reusability) sağlar
● Single Page Application geliştirmeye uygundur
● Bir çok yenilikçi ve kolaylaştırıcı özelliği vardır
Öne çıkan özellikleri
● Deklaratif HTML yaklaşımı
● Kolay uygulanabilen iki taraflı data-binding
● Yeniden kullanılabilir bileşenler
● Dependency injection
● Unit test ve End ro End Entegrasyon testi
yazmak kolaydır
● Gelişmiş yönlendirme (routing) desteği
● Şablon (templating) desteği
● Modules
● Servisler
● Filtreler
● Direktifler
● Form doğrulaması
● Çoklu dil desteği
HTML Derleyicisi
Geliştirici, browser’a yeni HTML söz dizimleri öğretebilir, herhangi bir HTML elemanına yeni davranışlar,
özellikler tanımlayabilir.
Derleyivi, DOM’u baştan sona tarayan bir AngularJS servisidir. Derleme iki fazda yapılır:
1. Derleme (compile): Tüm DOM taranır ve direktiflerin hepsi toparlanır.
2. Bağlama (link): Her direktif bir scope ile bağlanır.
İfadeler
HTML şablonu içinde JavaScript ifadeleri yer alabilir:
<body>
1 + 2 = {{ 1 + 2 }}
</body>
Direktifler
Günümüzün HTML bileşenleridirler. HTML’i genişletirler.
Direktifler HTML’de:
1. HTML elemanı, <messages />
2. HTML elemanı özelliği <div draggable></div>,
3. class adı <div class=”list-class”></div>.
olarak tanımlanabilir.
ng-repeat örneği
<div ng-repeat=”user in users”>
<div><a href=”u#/user/{{ user.id }}”>{{ user.name }}</a></div>
<div>{{ user.description }}</div>
</div>
diğer...
ngShow:
<div ng-show=”myValue”></div>
ngSwitch:
<div ng-switch=”page”>
<div ng-switch-when=”settings”>Settings</div>
<div ng-switch-when=”home”>Home</div>
<div ng-switch-default>back</div>
</div>
ngModel:
<input name=”name” ng-model=”user.name”></input>
Data Binding
Modelleriniz ile View’lerinizi bağlayın:
<input name=”name” ng-model=”user.name”></input>
Filtreler
View’deki ifadelerinizi formatlayın.
<div ng-repeat=”user in users”>
<div><a href=”u#/user/{{ user.id }}”>{{ user.name | uppercase }}</a></div>
<div>{{ user.dateOfBirth | date:’MM/dd/yyyy’ }}</div>
<div>{{ user.dateOfBirth | date:’medium’ }}</div>
<div>{{ user.description }}</div>
</div>
Kendi filtrelerinizi kolaylıkla oluşturabilirsiniz.
Kısmi Görünümler
Sayfanız Single Page Application olduğu için buna ihtiyacınız olacaktır.
Yönlendirmeler (routing) ile bağladığınız her bir sayfanız için farklı HTML şablonları gösterebilirsiniz.
<body>
<div class=”container”>
<div ng-view></div>
</div>
</body>
Modüller
Uygulamanızın yapısını oluşturur.
Her modülü aşağıdaki gibi tanımlayabilirsiniz:
var angularJSModule = angular.module(‘MyModule, []);
Modüllerin içinde:
● controller’lar
● service’ler
● filter’lar
● directive’ler
tanımlayabilirsiniz
ng-app
Angular’a, uygulamanın bir parçasının bir modül tarafından yönetileceğini söylemek için ngApp kullanın:
app.js içinde:
var angularJSModule = angular.module(‘MyModule, []);
index.html içinde:
<body ng-app=”MyModule”>
<div class=”container”>
<div ng-view></div>
</div>
</body>
Test edilebilir ve yönetilebilir bir uygulama geliştirin.
Aşağıda gibi, modülünüze routing tanımlamaları yapabilmeniz için routeProvider’ı enjekte edin:
var angularJSModule = angular.module(‘MyModule, []);
angularJSModule.config(function ($routeProvider) {
});
ya da
angularJSModule.config([‘$routeProvider’, function ($routeProvider) {
}]);
Dependency Injection
Uygulamanıza yönlendirmeler tanımlamak için modülünüzü konfigüre edin.
angularJSModule.config([‘$routeProvider’, function ($routeProvider) {
$routeProvider.when(’/users’, {)
templateUrl: ’views/users.html’
controller: ’UsersCtrl’
});
$routeProvider.otherwise({
templateUrl: ’common/404.html’
});
}]);
Burada “http://localhost/#/users” sayfasını ziyaret ettiğiniz zaman view’deki ng-view direktifinin tanımlı
olduğu elemana “views/users.html” sayfası yerleştirilecektir.
Modüllerinizi konfigüre edin
View’leriniz için veri sağlayıcılardır.
angularJSModule.controller(‘UsersCtrl’, [‘$scope’, function ($scope) {
$scope.users = [{
id: 123,
name: ‘Okan’,
dateOfBirth: ...,
description: ...
}];
}]);
View’de:
<div ng-repeat=”user in users”>
<div><a href=”u#/user/{{ user.id }}”>{{ user.name }}</a></div>
<div>{{ user.description }}</div>
</div>
Controller’lar
View’lerinizin omurgasını oluşturur.
Bir controller ile scope’a veri veya fonksiyon tanımlayabilirsiniz ve view’den bunlara erişebilirsiniz.
Her direktifin kendi özel izole scope’u olabilir.
Scope
Uygulamanız için çeşitli araç metodlar tanımlayabilirsiniz.
angularJSModule.factory(‘UsersService’, [‘$scope’, function() {
return {
getAllUsers: {
return [{ id: 123, name: ‘Okan’,
dateOfBirth: ‘1981-01-01’, description: ‘Software Developer’ }];
}
};
}]);
Bu service’leri controller’larınıza veya diğer service’lere veya filter’lara enjekte edebilirsiniz.
angularJSModule.controller(‘UsersCtrl’, [‘$scope, UsersService’, function($scope, UsersService) {
$scope.users = UsersService.getAllUsers();
}]);
Service’ler
Directive’ler AngularJS’nin güçlü tarafıdır. Fakat biraz karmaşık bir yapıya sahiptirler.
angularJSModule.directive(‘footerElement’, [function () {
return {
template: ‘<p class=”footer”>Copyright © 2015 Telenity, Inc. All Rights Reserved.</p>’,
replace: true
};
}]);
View’de:
<div footer-element></div>
Directive’ler
● Batarang - AngularJS uygulamaları için.
● Bower - bağımlılık yönetimi aracıdır. (by Twitter)
● Grunt - görev yönetimi sağlar (minification, compression, preparation...)
● Yeoman - öntanımlı quickstart uygulamalar yaratır.
● Karma - test başlatıcı bir araçtır.
● AngularUI - çeşitli kullanışlı bileşenler sunar (datepicker, Bootstrap CSS...)
● Restangular - restful servis iletişimi sağlar.
● Angular Translate - çoklu dil desteği için bir araçtır.
● https://ide.c9.io - cloud IDE
AngularJS - https://angularjs.org/
Quickstart Training - http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro
Framework’ler, kütüphaneler ve araçlar
Teşekkürler

Más contenido relacionado

Similar a AngularJS sunumu

AngularjsBilgeAdam
AngularjsBilgeAdamAngularjsBilgeAdam
AngularjsBilgeAdamierhalim
 
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...Erdem Avni Selçuk
 
Angular Framework (Tanıtım Sunumu) - 2024
Angular Framework (Tanıtım Sunumu) - 2024Angular Framework (Tanıtım Sunumu) - 2024
Angular Framework (Tanıtım Sunumu) - 2024eburhan
 
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik DesteğiASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik DesteğiAli İhsan Çalışkan
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Cüneyd Tural
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web ProgramlamaCihan Özhan
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web ProgramlamaCihan Özhan
 
Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-iemre61
 
Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?Omer Buyukoglu
 
MVVM (Model View ViewModel)
MVVM (Model View ViewModel)MVVM (Model View ViewModel)
MVVM (Model View ViewModel)nedirtv
 
ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişSinan Bozkuş
 
AngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak
AngularUI-Router ile Zincirlenmiş Ekranlar OluşturmakAngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak
AngularUI-Router ile Zincirlenmiş Ekranlar OluşturmakOmer Buyukoglu
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumuibrahimhizlioglu
 
Yazilim muhendisligi-2013
Yazilim muhendisligi-2013Yazilim muhendisligi-2013
Yazilim muhendisligi-2013sersld90
 
ASP.NET MVC 4 - Mahmut Can Sozeri Sunum
ASP.NET MVC 4 - Mahmut Can Sozeri SunumASP.NET MVC 4 - Mahmut Can Sozeri Sunum
ASP.NET MVC 4 - Mahmut Can Sozeri SunumGazi University
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciSinan Bozkuş
 

Similar a AngularJS sunumu (20)

AngularjsBilgeAdam
AngularjsBilgeAdamAngularjsBilgeAdam
AngularjsBilgeAdam
 
Modern Frontend
Modern FrontendModern Frontend
Modern Frontend
 
Uni stay 2017-2018
Uni stay 2017-2018 Uni stay 2017-2018
Uni stay 2017-2018
 
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
 
Angular Framework (Tanıtım Sunumu) - 2024
Angular Framework (Tanıtım Sunumu) - 2024Angular Framework (Tanıtım Sunumu) - 2024
Angular Framework (Tanıtım Sunumu) - 2024
 
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik DesteğiASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
 
Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?Neden Backbone.js'ten AngularJS'e Geçtik?
Neden Backbone.js'ten AngularJS'e Geçtik?
 
MVVM (Model View ViewModel)
MVVM (Model View ViewModel)MVVM (Model View ViewModel)
MVVM (Model View ViewModel)
 
12factor apps
12factor apps12factor apps
12factor apps
 
ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a Geçiş
 
AngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak
AngularUI-Router ile Zincirlenmiş Ekranlar OluşturmakAngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak
AngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Yazilim muhendisligi-2013
Yazilim muhendisligi-2013Yazilim muhendisligi-2013
Yazilim muhendisligi-2013
 
ASP.NET MVC 4 - Mahmut Can Sozeri Sunum
ASP.NET MVC 4 - Mahmut Can Sozeri SunumASP.NET MVC 4 - Mahmut Can Sozeri Sunum
ASP.NET MVC 4 - Mahmut Can Sozeri Sunum
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 

AngularJS sunumu

  • 1. AngularJS ile tek sayfa web uygulamaları
  • 2. MVC, MVVM, MVP ve MVW/MV* nedir? ● Model–View–Controller (MVC) kullanıcı arayüzleri geliştirmek için bir mimari kalıp. ● MVC UI geliştirmede yeni ufuklar açmıştır. Kendi sorumlulukları (single responsibility) üzerinden yazılım yapıları oluşturma ve tanımlama yaklaşımlarının ilklerinden biridir.
  • 3. Single Page Application nedir? ● Tüm uygulama dosyaları (HTML, JavaScript ve CSS) kullanıcı tarafına tek bir seferde yüklenir. ● Aslında bir tane uygulama dosyası vardır. Diğer html şablonları ve datalar, dinamik olarak, gerektikçe bu ana dosyaya gömülür. ● Amaç daha akıcı bir kullanıcı deneyimi sunmaktır. ● Masaüstü uygulaması gibi hızlı çalışan web uygulamaları geliştirilebilir.
  • 4. Neden adı AngularJS? Neden kullanılan namespace “ng”? ● Çünkü HTML’de açısal parantezler (“<” ve “>” kullanılır) ● “ng”nin telaffuzu “Angular”a benzer
  • 5. AngularJS nedir? ● Bir JavaScript kütüphanesi değildir. Direk çağırıp kullanabileceğimiz metodlar sunmaz. (angular global objesi ve sunduğu birkaç metot dışında) ● jQuery gibi bir DOM manipülasyon kütüphanesi (jQLite adında küçültülüp özelleştirilmiş bir jQuery kütüphanesi kullansa da) değildir ● Web uygulamalarında daha çok HTML tarafına odaklanır ● MVC, MVVM, MVP ve MVW/MV* (Model View Whatever) mimari kalıplarına uyar ● Single Page Application (SPA) geliştirilir ● Bir Javascript Web Çatısıdır (Framework) ● AngularJS, web uygulamasının farklı bileşenlerini birbirine bağlarken ve kullanıcı arayüzleri geliştiriyorken, deklaratif kodun imperatif koddan daha iyi olduğu felsefesi etrafında geliştirilmiştir
  • 6. Neden AngularJS? ● Direktifler, yeni tag’ler, ifadeler, özellikler, HTML şablonları ile HTML’i geliştirir ● TDD’ye teşvik eder ● MVC/MVVM mimari tasarım kalıplarına teşvik eder ● Kod yeniden kullanılırlığı (reusability) sağlar ● Single Page Application geliştirmeye uygundur ● Bir çok yenilikçi ve kolaylaştırıcı özelliği vardır
  • 7. Öne çıkan özellikleri ● Deklaratif HTML yaklaşımı ● Kolay uygulanabilen iki taraflı data-binding ● Yeniden kullanılabilir bileşenler ● Dependency injection ● Unit test ve End ro End Entegrasyon testi yazmak kolaydır ● Gelişmiş yönlendirme (routing) desteği ● Şablon (templating) desteği ● Modules ● Servisler ● Filtreler ● Direktifler ● Form doğrulaması ● Çoklu dil desteği
  • 8. HTML Derleyicisi Geliştirici, browser’a yeni HTML söz dizimleri öğretebilir, herhangi bir HTML elemanına yeni davranışlar, özellikler tanımlayabilir. Derleyivi, DOM’u baştan sona tarayan bir AngularJS servisidir. Derleme iki fazda yapılır: 1. Derleme (compile): Tüm DOM taranır ve direktiflerin hepsi toparlanır. 2. Bağlama (link): Her direktif bir scope ile bağlanır.
  • 9. İfadeler HTML şablonu içinde JavaScript ifadeleri yer alabilir: <body> 1 + 2 = {{ 1 + 2 }} </body>
  • 10. Direktifler Günümüzün HTML bileşenleridirler. HTML’i genişletirler. Direktifler HTML’de: 1. HTML elemanı, <messages /> 2. HTML elemanı özelliği <div draggable></div>, 3. class adı <div class=”list-class”></div>. olarak tanımlanabilir.
  • 11. ng-repeat örneği <div ng-repeat=”user in users”> <div><a href=”u#/user/{{ user.id }}”>{{ user.name }}</a></div> <div>{{ user.description }}</div> </div>
  • 12. diğer... ngShow: <div ng-show=”myValue”></div> ngSwitch: <div ng-switch=”page”> <div ng-switch-when=”settings”>Settings</div> <div ng-switch-when=”home”>Home</div> <div ng-switch-default>back</div> </div> ngModel: <input name=”name” ng-model=”user.name”></input>
  • 13. Data Binding Modelleriniz ile View’lerinizi bağlayın: <input name=”name” ng-model=”user.name”></input>
  • 14. Filtreler View’deki ifadelerinizi formatlayın. <div ng-repeat=”user in users”> <div><a href=”u#/user/{{ user.id }}”>{{ user.name | uppercase }}</a></div> <div>{{ user.dateOfBirth | date:’MM/dd/yyyy’ }}</div> <div>{{ user.dateOfBirth | date:’medium’ }}</div> <div>{{ user.description }}</div> </div> Kendi filtrelerinizi kolaylıkla oluşturabilirsiniz.
  • 15. Kısmi Görünümler Sayfanız Single Page Application olduğu için buna ihtiyacınız olacaktır. Yönlendirmeler (routing) ile bağladığınız her bir sayfanız için farklı HTML şablonları gösterebilirsiniz. <body> <div class=”container”> <div ng-view></div> </div> </body>
  • 16. Modüller Uygulamanızın yapısını oluşturur. Her modülü aşağıdaki gibi tanımlayabilirsiniz: var angularJSModule = angular.module(‘MyModule, []); Modüllerin içinde: ● controller’lar ● service’ler ● filter’lar ● directive’ler tanımlayabilirsiniz
  • 17. ng-app Angular’a, uygulamanın bir parçasının bir modül tarafından yönetileceğini söylemek için ngApp kullanın: app.js içinde: var angularJSModule = angular.module(‘MyModule, []); index.html içinde: <body ng-app=”MyModule”> <div class=”container”> <div ng-view></div> </div> </body>
  • 18. Test edilebilir ve yönetilebilir bir uygulama geliştirin. Aşağıda gibi, modülünüze routing tanımlamaları yapabilmeniz için routeProvider’ı enjekte edin: var angularJSModule = angular.module(‘MyModule, []); angularJSModule.config(function ($routeProvider) { }); ya da angularJSModule.config([‘$routeProvider’, function ($routeProvider) { }]); Dependency Injection
  • 19. Uygulamanıza yönlendirmeler tanımlamak için modülünüzü konfigüre edin. angularJSModule.config([‘$routeProvider’, function ($routeProvider) { $routeProvider.when(’/users’, {) templateUrl: ’views/users.html’ controller: ’UsersCtrl’ }); $routeProvider.otherwise({ templateUrl: ’common/404.html’ }); }]); Burada “http://localhost/#/users” sayfasını ziyaret ettiğiniz zaman view’deki ng-view direktifinin tanımlı olduğu elemana “views/users.html” sayfası yerleştirilecektir. Modüllerinizi konfigüre edin
  • 20. View’leriniz için veri sağlayıcılardır. angularJSModule.controller(‘UsersCtrl’, [‘$scope’, function ($scope) { $scope.users = [{ id: 123, name: ‘Okan’, dateOfBirth: ..., description: ... }]; }]); View’de: <div ng-repeat=”user in users”> <div><a href=”u#/user/{{ user.id }}”>{{ user.name }}</a></div> <div>{{ user.description }}</div> </div> Controller’lar
  • 21. View’lerinizin omurgasını oluşturur. Bir controller ile scope’a veri veya fonksiyon tanımlayabilirsiniz ve view’den bunlara erişebilirsiniz. Her direktifin kendi özel izole scope’u olabilir. Scope
  • 22. Uygulamanız için çeşitli araç metodlar tanımlayabilirsiniz. angularJSModule.factory(‘UsersService’, [‘$scope’, function() { return { getAllUsers: { return [{ id: 123, name: ‘Okan’, dateOfBirth: ‘1981-01-01’, description: ‘Software Developer’ }]; } }; }]); Bu service’leri controller’larınıza veya diğer service’lere veya filter’lara enjekte edebilirsiniz. angularJSModule.controller(‘UsersCtrl’, [‘$scope, UsersService’, function($scope, UsersService) { $scope.users = UsersService.getAllUsers(); }]); Service’ler
  • 23. Directive’ler AngularJS’nin güçlü tarafıdır. Fakat biraz karmaşık bir yapıya sahiptirler. angularJSModule.directive(‘footerElement’, [function () { return { template: ‘<p class=”footer”>Copyright © 2015 Telenity, Inc. All Rights Reserved.</p>’, replace: true }; }]); View’de: <div footer-element></div> Directive’ler
  • 24. ● Batarang - AngularJS uygulamaları için. ● Bower - bağımlılık yönetimi aracıdır. (by Twitter) ● Grunt - görev yönetimi sağlar (minification, compression, preparation...) ● Yeoman - öntanımlı quickstart uygulamalar yaratır. ● Karma - test başlatıcı bir araçtır. ● AngularUI - çeşitli kullanışlı bileşenler sunar (datepicker, Bootstrap CSS...) ● Restangular - restful servis iletişimi sağlar. ● Angular Translate - çoklu dil desteği için bir araçtır. ● https://ide.c9.io - cloud IDE AngularJS - https://angularjs.org/ Quickstart Training - http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro Framework’ler, kütüphaneler ve araçlar