27
AngularJS MeetUP routing and multilingual urls

Angular meetup - routing and multilingual urls

Embed Size (px)

Citation preview

Page 1: Angular meetup - routing and multilingual urls

AngularJS MeetUProuting and multilingual urls

Page 2: Angular meetup - routing and multilingual urls

Digital Viking

Page 3: Angular meetup - routing and multilingual urls

Who are you?

Page 4: Angular meetup - routing and multilingual urls

Routing in App

Page 5: Angular meetup - routing and multilingual urls

phonecatApp.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/phones', { templateUrl: 'partials/phone-list.html', controller: 'PhoneListCtrl'

}). when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: 'PhoneDetailCtrl'

}). otherwise({ redirectTo: '/phones' });

}]);

Page 6: Angular meetup - routing and multilingual urls

Routing - Web site

Page 7: Angular meetup - routing and multilingual urls

Angular routers

• ngRoute

• uiRouter

• angular-new-router

Page 8: Angular meetup - routing and multilingual urls

ngRoutephonecatApp.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/phones', { templateUrl: 'partials/phone-list.html', controller: 'PhoneListCtrl'

}). when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: 'PhoneDetailCtrl'

}). otherwise({ redirectTo: '/phones' });

}]);

Page 9: Angular meetup - routing and multilingual urls

uiRouter

$stateProvider .state(‘main’,{ url: ‘/‘, templateUrl: '/app/main/main.template.html', controller: 'MainCtrl', controllerAs: 'ctrl', })

Page 10: Angular meetup - routing and multilingual urls

angular-new-router

AppController.$routeConfig([ {path: '/', component: 'home' }]);

Page 11: Angular meetup - routing and multilingual urls

uiRouter$stateProvider.state('main',{templateUrl: '/app/main/main.template.html',controller: 'MainCtrl',controllerAs: 'ctrl',restricted: false,abstract: true,url: '/{locale}',meta: {

title: "Home", proxyState: "home"

}})

Page 12: Angular meetup - routing and multilingual urls

uiRouter - extended$stateProvider.state('main',{templateUrl: '/app/main/main.template.html',controller: 'MainCtrl',controllerAs: 'ctrl',restricted: false,abstract: true,url: '/{locale}',meta: {

title: "Home", proxyState: "home"

}})

Page 13: Angular meetup - routing and multilingual urls

uiRouter - abstract$stateProvider.state('main',{templateUrl: '/app/main/main.template.html',controller: 'MainCtrl',controllerAs: 'ctrl',restricted: false,abstract: true,url: '/{locale}',meta: {

title: "Home", proxyState: "home"

}})

Page 14: Angular meetup - routing and multilingual urls

uiRouter - url$stateProvider.state('main',{templateUrl: '/app/main/main.template.html',controller: 'MainCtrl',controllerAs: 'ctrl',restricted: false,abstract: true,url: '/{locale}',meta: {

title: "Home", proxyState: "home"

}})

Page 15: Angular meetup - routing and multilingual urls

uiRouter - sibling

.state('home',{parent: 'main',url: '/start',views: {

"": { templateUrl: '/app/start/start.html',

controller: 'StartCtrl', controllerAs: 'ctrl'

}, },});

Page 16: Angular meetup - routing and multilingual urls

uiRouter - sibling

.state(‘main.home',{url: ‘/start', // /{locale}/startviews: {

"": { templateUrl: '/app/start/start.html',

controller: 'StartCtrl', controllerAs: 'ctrl'

}, },});

Page 17: Angular meetup - routing and multilingual urls

uiRouter - sibling

.state(‘main.home',{url: '/start',views: {

"": { templateUrl: '/app/start/start.html',

controller: 'StartCtrl', controllerAs: 'ctrl'

}, "alertMessage@main": {

template: '<bridge-notification></bridge-notification>' } },});

Page 18: Angular meetup - routing and multilingual urls

routing events

• $stateChangeStart

• $stateChangeSuccess

• $stateChangeError

Page 19: Angular meetup - routing and multilingual urls

routing parameters

.state('product.details',{url:'/product/:serialNo',controller: 'ProductCtrl',controllerAs: 'ctrl',templateUrl: ‘/app/product/product-details.html',restricted: true,

})

Page 20: Angular meetup - routing and multilingual urls

uiRouter - linking

<ul> <li ng-repeat="product in products"> <a ui-sref="product.details({ serialNo: product.id })”> {{ product.name }}</a> </li></ul>

Page 21: Angular meetup - routing and multilingual urls

uiRouter - linking

<ul> <li ng-repeat="product in products” ui-sref-active=“active”> <a ui-sref="product.details({ serialNo: product.id })”> {{ product.name }}</a> </li></ul>

Page 22: Angular meetup - routing and multilingual urls

Multilingual urls?

Page 23: Angular meetup - routing and multilingual urls

Languages X

URLs =

Many

Page 24: Angular meetup - routing and multilingual urls

angular-ui-router-i18n

.state('customerservice.start',{url: $i18nUrlMatcherFactoryProvider.compile({

en: '/:locale/customerservice/start', sv: '/:locale/kundservice/start', de: '/:locale/kundendienst/start' }), templateUrl: ‘/app/customerservice/customerservice.template.html’, controller: 'CustomerServiceCtrl',

controllerAs: 'ctrl',})

Page 25: Angular meetup - routing and multilingual urls

catch them all state

$stateProvider.state('main.page',{url: '/*path',

template: ‘<page></page>',});

Page 26: Angular meetup - routing and multilingual urls

www.cenito.se

Page 27: Angular meetup - routing and multilingual urls

Thank you

• www.cenito.se

• Twitter @vincic

• Slides www.slideshare.net/vincic/

• email: [email protected]