SORU
15 NİSAN 2014, Salı


`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
15 NİSAN 2014, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJPixcell

    DJPixcell

    20 NİSAN 2007
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013
  • William Sledd

    William Sled

    24 EYLÜL 2006