এর সাথে ui-router
, ইউআরএলে প্যারামিটারগুলিতে অ্যাক্সেস পেতে হয় কোনও নিয়ন্ত্রক $state
বা ইনজেক্ট করা সম্ভব $stateParams
। তবে এর মাধ্যমে প্যারামিটারগুলি অ্যাক্সেস করা $stateParams
কেবলমাত্র নিয়ামক দ্বারা পরিচালিত রাষ্ট্রের সাথে সম্পর্কিত প্যারামিটারগুলিকে উন্মুক্ত করে যা এটি অ্যাক্সেস করে এবং এর প্যারেন্টস স্টেটস যখন $state.params
কোনও শিশু রাষ্ট্রের মতো সমস্ত পরামিতি থাকে।
নীচের কোডটি দেওয়া, যদি আমরা সরাসরি ইউআরএল লোড করি 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
}
প্রশ্ন হচ্ছে, পার্থক্য কেন? এবং আপনার কখন এবং কেন ব্যবহার করা উচিত তার চারপাশে সর্বোত্তম অনুশীলনের গাইডলাইন রয়েছে বা সেগুলির কোনওটি এড়ানো উচিত নয়?