साथ ui-router
, इसकी सुई या तो संभव है $state
या $stateParams
एक नियंत्रक में URL में पैरामीटर के लिए उपयोग मिलता है। हालांकि, $stateParams
केवल मापदंडों के माध्यम से एक्सेस करने वाले नियंत्रक द्वारा प्रबंधित राज्य से संबंधित मापदंडों को उजागर करता है जो इसे एक्सेस करता है, और इसके मूल राज्य, जबकि $state.params
सभी पैरामीटर हैं, जिनमें किसी भी बच्चे के राज्यों में शामिल हैं।
निम्नलिखित कोड को देखते हुए, यदि हम URL को सीधे लोड करते हैं http://path/1/paramA/paramB
, तो यह है कि नियंत्रक के लोड होने पर यह कैसे जाता है:
$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
}
सवाल यह है कि अंतर क्यों? और क्या आपके पास कब और क्यों उपयोग करना चाहिए, या उनमें से किसी एक का उपयोग करने से बचना चाहिए?