`uı-router` $stateParams vs $devlet.parametreler
ui-router
, Olası URL parametreleri girmek için bir denetleyici içine ya $state
$stateParams
enjekte etmek. Ancak, erişim parametreleri ile $stateParams
sadece sunar parametreleri ait devlet tarafından yönetilen kumanda erişen ve üst Birleşik Devletleri, süre $state.params
tüm parametreler olanlar da dahil olmak üzere herhangi bir çocuk Birleşik Devletleri.
Biz doğrudan URL http://path/1/paramA/paramB
yüklerseniz, aşağıdaki kodu göz önüne alındığında, bu denetleyicileri yük zaman nasıl gidiyor
$stateProvider.state('a', {
url: 'path/:id/:anotherParam/',
controller: 'ACtrl',
});
$stateProvider.state('a.b', {
url: '/:yetAnotherParam',
controller: 'ABCtrl',
});
module.controller('ACtrl', function($stateParams, $state) {
$state.params; // has id, anotherParam, and yetAnotherParam
$stateParams; // has id and anotherParam
}
module.controller('ABCtrl', function($stateParams, $state) {
$state.params; // has id, anotherParam, and yetAnotherParam
$stateParams; // has id, anotherParam, and yetAnotherParam
}
Soru, neden fark var? Ve en iyi kullanın, ya da ikisini de kullanmaktan kaçınmalısınız zaman etrafında uygulamaları kurallar vardır?
CEVAP
Burada bulduklarını yineledi belgeleri: https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service
Eğer hafızam beni yanıltmıyorsa, $stateParams
orijinal 9 ** ve basit bir yardımcı gibi görünüyor, daha sonra sürekli olarak kullanılmaya başlandı $state.params
yazma önlemek için enjektör.
Herhangi bir en iyi uygulama kurallar vardır sanmıyorum, ama içeriği benim için kazanır. Eğer sadece Parametreler url içine alınan erişim istiyorsanız, o zaman $stateParams
kullanın. Eğer bir şey devletin kendisi hakkında daha karmaşık olduğunu bilmek istiyorsan, $state
kullanın.
Nasıl üst devlet UI-Router kullanarak ...
Enjekte $devlet (uı-router) $http avcı...
usta nasıl angularjs uı-router - app g...
Açısal uı router birim testi (leri Bir...
ViewPager ve parçaları — 'parçası...