অ্যাঙ্গুলারজেএস-এ, আমি দেখি আমরা কখনও কখনও ব্যবহার করি $state.transitionTo()
এবং কখনও কখনও আমরা ব্যবহার করি $state.go()
। কেউ কি আমাকে বলতে পারবেন যে তারা কীভাবে আলাদা হয় এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?
অ্যাঙ্গুলারজেএস-এ, আমি দেখি আমরা কখনও কখনও ব্যবহার করি $state.transitionTo()
এবং কখনও কখনও আমরা ব্যবহার করি $state.go()
। কেউ কি আমাকে বলতে পারবেন যে তারা কীভাবে আলাদা হয় এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?
উত্তর:
আপনি কি AngularUI রাউটারটি উল্লেখ করছেন ? যদি তা হয়, উইকি পার্থক্যগুলি নির্দিষ্ট করে :
। state.go (থেকে [, toParams] [, বিকল্প]])
রূপান্তর অবস্থার প্রতিনিধিত্ব করে একটি প্রতিশ্রুতি দেয়।
একটি নতুন রাজ্যে স্থানান্তরিত করার জন্য সুবিধা পদ্ধতি। অভ্যন্তরীণভাবে
$state.go
কল$state.transitionTo
করে কিন্তু স্বয়ংক্রিয়ভাবে বিকল্পগুলি সেট করে{ location: true, inherit: true, relative: $state.$current, notify: true }
। এটি আপনাকে পাথের সাথে একটি নিখুঁত বা আপেক্ষিক সহজে ব্যবহার করতে দেয় এবং কেবলমাত্র আপনি যে প্যারামিটারগুলি আপডেট করতে চান তা নির্দিষ্ট করতে পারবেন (যখন অনির্দিষ্ট পরামিতিগুলিকে বর্তমান অবস্থা থেকে উত্তরাধিকারী করার সময়)।
। state.transitionTo (to, to Param [[অপশন]])
রূপান্তর অবস্থার প্রতিনিধিত্ব করে একটি প্রতিশ্রুতি দেয়।
একটি নতুন রাজ্যে স্থানান্তরের জন্য নিম্ন-স্তরের পদ্ধতি। অভ্যন্তরীণভাবে
$state.go()
ব্যবহারtransitionTo
করে।$state.go()
বেশিরভাগ পরিস্থিতিতে সুপারিশ করা হয়।
$state.transitionTo
একটি নতুন রাজ্যে ট্রানজিট করুন। বেশিরভাগ ক্ষেত্রে, আপনাকে এটি ব্যবহার করতে হবে না, আপনি পছন্দ করতে পারেন$state.go
।
এটি কোনও options
অবজেক্টে কিছু পরামিতি নেয় :
location
: true
লোকেশন বারে ইউআরএল আপডেট করা হয়, যদি false
না হয়। যদি স্ট্রিং থাকে তবে "replace"
ইউআরএল আপডেট করবে এবং সর্বশেষ ইতিহাসের রেকর্ডটিও প্রতিস্থাপন করবে।inherit
: যদি true
বর্তমান url থেকে url পরামিতি উত্তরাধিকার সূত্রে প্রাপ্ত হয়।relative
(stateObject, ডিফল্ট null
) : আপেক্ষিক পাথের সাথে স্থানান্তরিত হওয়ার সময় (যেমন '^'), কোন রাষ্ট্র থেকে আপেক্ষিক হতে হবে তা সংজ্ঞায়িত করে।notify
: যদি হয় true
, সম্প্রচার $stateChangeStart
এবং $stateChangeSuccess
ইভেন্ট হবে।reload
: যদি true
রাষ্ট্র বা প্যারামগুলি পরিবর্তন না হয়, এমনকি একই রাষ্ট্রের একটি পুনরায় লোড ট্রানজিশনকে বাধ্য করে।$state.go
শর্টকাট এক ধরণের $state.transitionTo
যা ডিফল্ট বিকল্পগুলির সাথে কল করে:
location
: true
inherit
: true
relative
: $state.$current
notify
: true
reload
: false
সিন্থ্যাক্স আরও সহজ হওয়ায় এটি আরও সুবিধাজনক। আপনি কেবলমাত্র একটি রাষ্ট্রের নাম দিয়ে এটি কল করতে পারেন।
$state.go('home');