Yanıtlar:
Her ikisi de SPA'da (Tek Sayfa Uygulaması) yönlendirme amacıyla kullanılanlarla aynı işi yapar.
Denetleyicilere ve görünümlere URL'ler (HTML kısmi). $ Location.url () öğesini izler ve yolu mevcut bir rota tanımına eşlemeye çalışır.
HTML
<div ng-view></div>
Yukarıdaki etiket, şablonu açısal (yapılandırma aşaması) 'nda $routeProvider.when()
belirttiğiniz koşuldan oluşturur.config
Sınırlamalar: -
ng-view
sayfa bulunabilir$routeProvider
başarısız olur. (Bunu başarmak için, biz gibi direktifler kullanmak gerekir ng-include
, ng-switch
, ng-if
, ng-show
SPA onlara sahip, kötü görünüyor ki)AngularUI Router, arayüzünüzün parçalarını bir durum makinesinde düzenlemenizi sağlayan AngularJS için bir yönlendirme çerçevesidir. UI-Router, isteğe bağlı olarak yolları ve diğer davranışları eklenmiş olabilecek eyaletler etrafında düzenlenmiştir.
Birden Çok Adlandırılmış Görünüm
Bir başka harika özellik, bir şablonda birden çok kullanıcı arayüzü görünümüne sahip olma yeteneğidir.
Birden çok paralel görünüm güçlü bir özellik olsa da, arayüzlerinizi iç içe yerleştirerek view
ve bu görünümleri iç içe durumlarla eşleştirerek arayüzlerinizi daha etkili bir şekilde yönetebilirsiniz .
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
Gücünün çoğunluğu, ui-router
iç içe geçmiş durum ve görüşleri yönetebilmesidir.
Artıları
ui-view
Tek sayfada birden çok sayfa olabilirui-view="some"
sadece mutlak kullanarak kullanarak yönlendirerek devletin @
devlet adıyla.@
değiştirmek için kullanmaktır ui-view="some"
. Bu ui-view
, iç içe olup olmadığını kontrol etmek yerine yerini alacaktır .ui-sref
bir href
URL oluşturmak için kullanabilirsiniz URL
, ayrıca bir eyalettejson
biçimdeki .Daha fazla bilgi için Açısal ui-yönlendirici
Durumlarla çeşitli iç içe görünümde daha iyi esneklik için, gitmenizi tercih ederim ui-router
$stateProvider
&$routeProvider
Yönlendirme URLs
sırasında Angular'ın kendi ng-Router'ı, states
URL'lere ek olarak UI-Router da dikkate alınır .
Durumlar, uygulamanızın arayüzünü güçlü bir şekilde yönetmenizi sağlayan adlandırılmış, iç içe ve paralel görünümlere bağlıdır.
Ng-router'dayken, <a href="">
etiket yoluyla bağlantı sağlarken URL'lere çok dikkat etmelisiniz , UI-Router'da sadece state
akılda tutmalısınız . Gibi bağlantılar sağlarsınız <a ui-sref="">
. Kullansanız bile<a href="">
UI-Router'da , tıpkı ng-router'da yaptığınız gibi, yine de çalışacağını unutmayın.
Dolayısıyla, URL'nizi bir gün değiştirmeye karar verseniz bile, URL'niz state
aynı kalacaktır ve URL'yi yalnızca adresinde değiştirmeniz gerekir .config
.
NgRouter basit uygulamalar yapmak için kullanılabilirken, UI-Router karmaşık uygulamalar için geliştirmeyi çok daha kolay hale getirir. İşte onun wiki'si.
$ route: URL'leri denetleyicilere ve görünümlere (HTML kısmi) derinden bağlamak için kullanılır ve mevcut bir rota tanımından yolu eşlemek için $ location.url () öğesini izler.
NgRoute kullandığımızda, rota $ routeProvider ile ve ui-router kullandığımızda rota $ stateProvider ve $ urlRouterProvider ile yapılandırılır.
<div ng-view></div>
$routeProvider
.when('/contact/', {
templateUrl: 'app/views/core/contact/contact.html',
controller: 'ContactCtrl'
});
<div ui-view>
<div ui-view='abc'></div>
<div ui-view='abc'></div>
</div>
$stateProvider
.state("contact", {
url: "/contact/",
templateUrl: '/app/Aisel/Contact/views/contact.html',
controller: 'ContactCtrl'
});