SlideShare a Scribd company logo
UI-Router ile Zincirlenmiş 
Ekranlar Oluşturmak 
Ömer Büyükoğlu 
Web Team Lead 
Twitter: Buyomer 
GitHub: Buyomer 
2014
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router 
İle Zinriclenmiş Ekranlar Oluşturmak 
2
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router 
Zincirlenmiş Ekranlar Oluşturma 
Neden AngularUI Router 
ortaya çıktı? 
3
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 4 
ngRoute 
Templating 
Navigation 
index.html 
Sidebar Content
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 5 
<ng-view></ng-view> 
ngRoute 
İç İçe Sayfalar 
index.html 
<ng-include src=“‘navbar.html’"></ng-include> 
<ng-include 
src= “‘sidebar.html’”> 
</ng-include>
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 6 
1 
2 
13 
14 
15 
16 
17 
18 
19 
20 
21 
21 
23 
30 
index.html 
my_project 
<!DOCTYPE html> 
<html src=“myList”> 
… 
// Navigation with ngInclude 
<ng-include src=“‘navbar.html’”></ng-include> 
// Sidebar with ngInclude 
<ng-include src=“‘sidebar.html’”></ng-include> 
// Content ngView 
<ng-view></ng-view> 
… 
</html> 
ngRoute 
İç İçe Sayfalar 
js 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 7 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
ngRoute 
İç İçe Sayfalar 
app.js 
my_project 
$routeProvider 
.when(‘/list/:id’, { 
templateUrl: ‘list.html’, 
controller: ‘ListCtrl’, 
}); 
js 
app.js 
views 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 8 
<ng-view></ng-view> 
ngRoute 
İç İçe Sayfalar 
index.html 
<ng-include src=“‘navbar.html’"></ng-include> 
<ng-include 
src= “‘sidebar.html’”> 
</ng-include> 
list.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 9 
<ng-view></ng-view> 
ngRoute 
İç İçe Sayfalar 
index.html 
<ng-include src=“‘navbar.html’"></ng-include> 
<ng-view></ng-view> ? list.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler Angular Router ile birden fazla 
<ng-view> 
kullanılamaz! 
10 
ngRoute 
İç İçe Sayfalar
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 11 
ngRoute vs ui.router 
ngRoute ui.router 
• Url odaklı geçişler 
• Tek bir ng-view 
• İç içe view eklemek zor ve 
problemli 
• State odaklı geçişler 
• Çoklu ui-view 
• İç içe view eklemek için 
yaratılmış 
AngularUI Router
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 12 
AngularUI Router 
Router 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
app.js 
my_project 
$routeProvider 
.when(‘/list’, { 
templateUrl: ‘list.html’, 
controller: ‘ListCtrl’, 
… 
}); 
$stateProvider 
.state(‘list’, { 
url: ‘/list’ 
templateUrl: ‘list.html’, 
controller: ‘ListCtrl’, 
… 
}); 
js 
app.js 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 13 
<ng-view></ng-view> 
AngularUI Router 
İç İçe Sayfalar 
index.html 
<ng-include src=“‘navbar.html’"></ng-include> 
<ng-include 
src= “‘sidebar.html’”> 
</ng-include>
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router 
<ng-include src=“‘navbar.html’"></ng-include> 
<ui-view name=“content”></ui-view> 
14 
İç İçe Sayfalar 
template.html 
<ui-view 
name= “sidebar”> 
</ui-view>
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 15 
AngularUI Router 
1 
2 
3 
11 
12 
13 
14 
15 
22 
index.html 
my_project 
<!DOCTYPE html> 
<html ng-app=“myList”> 
… 
// Default ui.view 
<ui-view></ui-view> 
… 
</html> 
İç İçe Sayfalar 
js 
views 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 16 
AngularUI Router 
1 
2 
3 
4 
5 
6 
7 
8 
template.html 
my_project 
// Navigation with ngInclude 
<ng-include src=“‘navbar.html’”></ng-include> 
// Sidebar ui.view 
<ui-view name=“sidebar”></ui-view> 
// Content ui.view 
<ui-view name=“content”></ui-view> 
İç İçe Sayfalar 
js 
views 
template.html 
sidebar.html 
content.html 
index.html
#vngrsbootcamp 
17 
AngularUI Router 
app.js 
my_project 
$stateProvider 
.state(‘root’, { 
templateUrl: ‘template.html’, 
}); 
}); 
js 
app.js 
views 
index.html 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
İç İçe Sayfalar 
.state(‘root.list’, { 
url: ‘/list/id’ 
views: { 
'sidebar': { 
templateUrl: "sidebar.html", 
}, 
'content': { 
templateUrl: “list.html”, 
controller: “ListController", 
} 
}
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router 
İç İçe Sayfalar 
http://www.sitename.com/list/14 
<ui-view name=“navbar”></ui-view> 
18 
<ui-view 
name= “sidebar”> 
</ui-view> 
<ui-view name=“content”></ui-view> 
sidebar.html list.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 19 
AngularUI Router 
State Yönlendirme 
1 
2 
controller.js 
my_project 
$state.go("root.home") 
js 
app.js 
controller.js 
views 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler 20 
AngularUI Router 
State Yönlendirme 
1 
2 
3 
4 
5 
6 
7 
8 
template.html 
my_project 
// State yönlendirme 
<a ui-sref=“home”></a> 
// Parametre ile state yönlendirme 
<a ui-sref=“root.list({id: listId})”></a> 
js 
views 
template.html 
sidebar.html 
content.html 
index.html
#vngrsbootcamp 
AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router 
Zincirlenmiş Ekranlar Oluşturma 
Demo 
21
Teşekkürler 
Ömer Büyükoğlu 
Web Team Lead 
Twitter: Buyomer 
GitHub: Buyomer 
SlideShare: Buyomer 
2014

More Related Content

PDF
Neden Backbone.js'ten AngularJS'e Geçtik?
Omer Buyukoglu
 
PDF
Modern Frontend
Cihad Horuzoğlu
 
PPTX
AngularjsBilgeAdam
ierhalim
 
PPTX
IonicFramework
ierhalim
 
PDF
Gradle ile Proje Insası
Ömer ÖZKAN
 
PPTX
Angularjs ve Angularjs 2 nedir?
Engin Polat
 
PPTX
Console Projesinde Azure Blob Storage Nasıl Kullanırım
Engin Polat
 
PPTX
DevNot Developer Summit Istanbul Nisan 2017
Engin Polat
 
Neden Backbone.js'ten AngularJS'e Geçtik?
Omer Buyukoglu
 
Modern Frontend
Cihad Horuzoğlu
 
AngularjsBilgeAdam
ierhalim
 
IonicFramework
ierhalim
 
Gradle ile Proje Insası
Ömer ÖZKAN
 
Angularjs ve Angularjs 2 nedir?
Engin Polat
 
Console Projesinde Azure Blob Storage Nasıl Kullanırım
Engin Polat
 
DevNot Developer Summit Istanbul Nisan 2017
Engin Polat
 

What's hot (17)

PDF
Git ile Sürüm Takibi
Ömer ÖZKAN
 
PPTX
AspNet MVC ile metin resim sifreleme (Steganography)
Engin Polat
 
PDF
ASP.Net MVC ile Web Uygulamaları -16(JQuery)
İbrahim ATAY
 
PDF
Kurumsal Java & Web Teknolojileri
Ömer ÖZKAN
 
PPTX
mvc
Serdar Cavdar
 
PDF
Modern Web Uygulama Geliştirme
İbrahim ATAY
 
PDF
JavaScript ile Taş Kırmak
İbrahim ATAY
 
PPTX
Swagger
Kadir Erbakar
 
PDF
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Emrah Ayanoglu
 
PDF
IstanbulPHP meetup sunum
Mustafa UYSAL
 
PDF
jQuery ile ASP.NET Uygulamaları Geliştirme
İbrahim ATAY
 
PDF
WordPress ile buyuk olcekli siteler
Mustafa UYSAL
 
PPTX
Asp.Net Web User Control
Abdülkadir BARLIK
 
PPTX
Apache Maven
Dilaver Demirel
 
ODP
Ozgur Web Catilari Mobil Uygulama Gelistirme
Burak Dede
 
PDF
ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)
İbrahim ATAY
 
PPTX
Abis Teknoloji şirket içi Docker sunumu
Mahmut Gündoğdu
 
Git ile Sürüm Takibi
Ömer ÖZKAN
 
AspNet MVC ile metin resim sifreleme (Steganography)
Engin Polat
 
ASP.Net MVC ile Web Uygulamaları -16(JQuery)
İbrahim ATAY
 
Kurumsal Java & Web Teknolojileri
Ömer ÖZKAN
 
Modern Web Uygulama Geliştirme
İbrahim ATAY
 
JavaScript ile Taş Kırmak
İbrahim ATAY
 
Swagger
Kadir Erbakar
 
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Emrah Ayanoglu
 
IstanbulPHP meetup sunum
Mustafa UYSAL
 
jQuery ile ASP.NET Uygulamaları Geliştirme
İbrahim ATAY
 
WordPress ile buyuk olcekli siteler
Mustafa UYSAL
 
Asp.Net Web User Control
Abdülkadir BARLIK
 
Apache Maven
Dilaver Demirel
 
Ozgur Web Catilari Mobil Uygulama Gelistirme
Burak Dede
 
ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)
İbrahim ATAY
 
Abis Teknoloji şirket içi Docker sunumu
Mahmut Gündoğdu
 
Ad

Similar to AngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak (9)

PDF
AngularJS sunumu
okanozeren
 
PDF
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Omer Buyukoglu
 
PPTX
Angular Web Programlama
Cihan Özhan
 
PDF
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
Tevfik Mert Azizoglu
 
PDF
Mobil Arayüz Geliştirme
Mobile İstanbul
 
PPT
ASP.NET MVC 3
Uğur Umutluoğlu
 
PPT
ASP.NET MVC 3
Uğur Umutluoğlu
 
PPTX
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni Selçuk
 
PPTX
ASP.NET MVC 4 - Mahmut Can Sozeri Sunum
Gazi University
 
AngularJS sunumu
okanozeren
 
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Omer Buyukoglu
 
Angular Web Programlama
Cihan Özhan
 
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
Tevfik Mert Azizoglu
 
Mobil Arayüz Geliştirme
Mobile İstanbul
 
ASP.NET MVC 3
Uğur Umutluoğlu
 
ASP.NET MVC 3
Uğur Umutluoğlu
 
Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Work...
Erdem Avni Selçuk
 
ASP.NET MVC 4 - Mahmut Can Sozeri Sunum
Gazi University
 
Ad

AngularUI-Router ile Zincirlenmiş Ekranlar Oluşturmak

  • 1. UI-Router ile Zincirlenmiş Ekranlar Oluşturmak Ömer Büyükoğlu Web Team Lead Twitter: Buyomer GitHub: Buyomer 2014
  • 2. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router İle Zinriclenmiş Ekranlar Oluşturmak 2
  • 3. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router Zincirlenmiş Ekranlar Oluşturma Neden AngularUI Router ortaya çıktı? 3
  • 4. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 4 ngRoute Templating Navigation index.html Sidebar Content
  • 5. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 5 <ng-view></ng-view> ngRoute İç İçe Sayfalar index.html <ng-include src=“‘navbar.html’"></ng-include> <ng-include src= “‘sidebar.html’”> </ng-include>
  • 6. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 6 1 2 13 14 15 16 17 18 19 20 21 21 23 30 index.html my_project <!DOCTYPE html> <html src=“myList”> … // Navigation with ngInclude <ng-include src=“‘navbar.html’”></ng-include> // Sidebar with ngInclude <ng-include src=“‘sidebar.html’”></ng-include> // Content ngView <ng-view></ng-view> … </html> ngRoute İç İçe Sayfalar js index.html
  • 7. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 7 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ngRoute İç İçe Sayfalar app.js my_project $routeProvider .when(‘/list/:id’, { templateUrl: ‘list.html’, controller: ‘ListCtrl’, }); js app.js views index.html
  • 8. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 8 <ng-view></ng-view> ngRoute İç İçe Sayfalar index.html <ng-include src=“‘navbar.html’"></ng-include> <ng-include src= “‘sidebar.html’”> </ng-include> list.html
  • 9. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 9 <ng-view></ng-view> ngRoute İç İçe Sayfalar index.html <ng-include src=“‘navbar.html’"></ng-include> <ng-view></ng-view> ? list.html
  • 10. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler Angular Router ile birden fazla <ng-view> kullanılamaz! 10 ngRoute İç İçe Sayfalar
  • 11. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 11 ngRoute vs ui.router ngRoute ui.router • Url odaklı geçişler • Tek bir ng-view • İç içe view eklemek zor ve problemli • State odaklı geçişler • Çoklu ui-view • İç içe view eklemek için yaratılmış AngularUI Router
  • 12. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 12 AngularUI Router Router 11 12 13 14 15 16 17 18 19 20 21 22 23 24 app.js my_project $routeProvider .when(‘/list’, { templateUrl: ‘list.html’, controller: ‘ListCtrl’, … }); $stateProvider .state(‘list’, { url: ‘/list’ templateUrl: ‘list.html’, controller: ‘ListCtrl’, … }); js app.js index.html
  • 13. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 13 <ng-view></ng-view> AngularUI Router İç İçe Sayfalar index.html <ng-include src=“‘navbar.html’"></ng-include> <ng-include src= “‘sidebar.html’”> </ng-include>
  • 14. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router <ng-include src=“‘navbar.html’"></ng-include> <ui-view name=“content”></ui-view> 14 İç İçe Sayfalar template.html <ui-view name= “sidebar”> </ui-view>
  • 15. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 15 AngularUI Router 1 2 3 11 12 13 14 15 22 index.html my_project <!DOCTYPE html> <html ng-app=“myList”> … // Default ui.view <ui-view></ui-view> … </html> İç İçe Sayfalar js views index.html
  • 16. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 16 AngularUI Router 1 2 3 4 5 6 7 8 template.html my_project // Navigation with ngInclude <ng-include src=“‘navbar.html’”></ng-include> // Sidebar ui.view <ui-view name=“sidebar”></ui-view> // Content ui.view <ui-view name=“content”></ui-view> İç İçe Sayfalar js views template.html sidebar.html content.html index.html
  • 17. #vngrsbootcamp 17 AngularUI Router app.js my_project $stateProvider .state(‘root’, { templateUrl: ‘template.html’, }); }); js app.js views index.html 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 İç İçe Sayfalar .state(‘root.list’, { url: ‘/list/id’ views: { 'sidebar': { templateUrl: "sidebar.html", }, 'content': { templateUrl: “list.html”, controller: “ListController", } }
  • 18. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router İç İçe Sayfalar http://www.sitename.com/list/14 <ui-view name=“navbar”></ui-view> 18 <ui-view name= “sidebar”> </ui-view> <ui-view name=“content”></ui-view> sidebar.html list.html
  • 19. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 19 AngularUI Router State Yönlendirme 1 2 controller.js my_project $state.go("root.home") js app.js controller.js views index.html
  • 20. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler 20 AngularUI Router State Yönlendirme 1 2 3 4 5 6 7 8 template.html my_project // State yönlendirme <a ui-sref=“home”></a> // Parametre ile state yönlendirme <a ui-sref=“root.list({id: listId})”></a> js views template.html sidebar.html content.html index.html
  • 21. #vngrsbootcamp AngularJS'in Ötesinde Web Uygulaması için Çözümler AngularUI Router Zincirlenmiş Ekranlar Oluşturma Demo 21
  • 22. Teşekkürler Ömer Büyükoğlu Web Team Lead Twitter: Buyomer GitHub: Buyomer SlideShare: Buyomer 2014