কৌণিক ইউআই রাউটারে $ state.transitionTo () এবং $ state.go () এর মধ্যে পার্থক্য


108

অ্যাঙ্গুলারজেএস-এ, আমি দেখি আমরা কখনও কখনও ব্যবহার করি $state.transitionTo()এবং কখনও কখনও আমরা ব্যবহার করি $state.go()। কেউ কি আমাকে বলতে পারবেন যে তারা কীভাবে আলাদা হয় এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?

উত্তর:


151

আপনি কি 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()বেশিরভাগ পরিস্থিতিতে সুপারিশ করা হয়।


1
আমি আপনার প্রদত্ত লিঙ্কগুলি থেকে আমার আরও প্রয়োজনীয় তথ্য পেয়েছি। অনেক অনেক ধন্যবাদ ব্র্যান্ডন :)
বার্সেলোনা

1
স্পষ্টতই, আমি যদি ট্রানজিশনটো ব্যবহার করে ভিউটিকে পুনরায় ট্রিগার করি তবে ভিউতে ইনপুট করা মানগুলি ফ্লাশ হয় না। যাইহোক আমরা মান / জেএস / ভিউ রিফ্রেশ করতে বাধ্য করতে পারি? পিএস - ভিউ ওভারলে হিসাবে পৃষ্ঠা পুনরায় লোড করা কোনও বিকল্প নয়
স্বনিধি

10

$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');
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.