নাথন ম্যাথিউসের সমাধানটি আমার পক্ষে কাজ করে নি তবে এটি সম্পূর্ণ সঠিক তবে কার্যকারণে পৌঁছানোর পক্ষে সামান্যই বক্তব্য রয়েছে:
মূল বিষয় হ'ল: সংজ্ঞায়িত প্যারামিটার এবং $ state.go- এর প্যারামাসের ধরণটি রাষ্ট্রের উত্তরণের উভয় পক্ষের একই অ্যারে বা অবজেক্ট হওয়া উচিত।
উদাহরণস্বরূপ, যখন আপনি একটি রাজ্যে কোনও প্যারামগুলি সংজ্ঞায়িত করেন নীচে আপনি অর্থ প্যারামগুলি অ্যারে হয় কারণ "[]" ব্যবহার করার কারণে:
$stateProvider
.state('home', {
templateUrl: 'home',
controller: 'homeController'
})
.state('view', {
templateUrl: 'overview',
params: ['index', 'anotherKey'],
controller: 'overviewController'
})
সুতরাং আপনার এইরকম হিসাবে অ্যারে হিসাবে পারমগুলিতে পাস করা উচিত:
params = { 'index': 123, 'anotherKey': 'This is a test' }
paramsArr = (val for key, val of params)
$state.go('view', paramsArr)
এবং আপনি এগুলি $ stateParams এর মাধ্যমে এই জাতীয় অ্যারে হিসাবে অ্যাক্সেস করতে পারেন:
app.controller('overviewController', function($scope, $stateParams) {
var index = $stateParams[0];
var anotherKey = $stateParams[1];
});
আরও ভাল সমাধান উভয় পক্ষের অ্যারের পরিবর্তে অবজেক্ট ব্যবহার করা হয় :
$stateProvider
.state('home', {
templateUrl: 'home',
controller: 'homeController'
})
.state('view', {
templateUrl: 'overview',
params: {'index': null, 'anotherKey': null},
controller: 'overviewController'
})
আমি প্যারাম সংজ্ঞায়] with দিয়ে [] প্রতিস্থাপন করেছি। প্যারামগুলিতে P state.go এ যাওয়ার জন্য আপনার অ্যারের পরিবর্তে অবজেক্টটি ব্যবহার করা উচিত:
$state.go('view', { 'index': 123, 'anotherKey': 'This is a test' })
তারপরে আপনি এগুলি সহজেই $ stateParams- এর মাধ্যমে অ্যাক্সেস করতে পারবেন:
app.controller('overviewController', function($scope, $stateParams) {
var index = $stateParams.index;
var anotherKey = $stateParams.anotherKey;
});
params
অ্যারেতে ।