Angular ui-router में $ State.transitionTo () और $ state.go () के बीच अंतर


108

AngularJS में, मैं कभी-कभी हम उपयोग करते हैं $state.transitionTo()और कभी-कभी हम उपयोग करते हैं $state.go()। क्या कोई मुझे बता सकता है कि वे अलग कैसे हैं और जब एक को दूसरे पर इस्तेमाल किया जाना चाहिए?

जवाबों:


151

क्या आप एंगुलरयू राउटर की बात कर रहे हैं ? यदि ऐसा है, विकी अंतर निर्दिष्ट करता है :

$ state.go ([, toParams] [, विकल्प])

संक्रमण की स्थिति का प्रतिनिधित्व करने वाला एक वादा लौटाता है ।

नए राज्य में संक्रमण के लिए सुविधा का तरीका। आंतरिक रूप से $state.goकॉल $state.transitionToकरता है, लेकिन स्वचालित रूप से विकल्प सेट करता है { location: true, inherit: true, relative: $state.$current, notify: true }। यह आपको आसानी से एक पूर्ण या सापेक्ष पथ का उपयोग करने और केवल उन मापदंडों को निर्दिष्ट करने की अनुमति देता है जिन्हें आप अपडेट करना चाहते हैं (वर्तमान स्थिति से अनिर्दिष्ट मापदंडों को विरासत में देते हुए)।


$ State.transitionTo (to, toParams [, options])

संक्रमण की स्थिति का प्रतिनिधित्व करने वाला एक वादा लौटाता है ।

नए राज्य में संक्रमण के लिए निम्न स्तर की विधि। आंतरिक रूप से $state.go()उपयोग करता है transitionTo$state.go()ज्यादातर स्थितियों में अनुशंसित है।


1
मुझे आपके दिए गए लिंक से अधिक जानकारी चाहिए। बहुत बहुत ब्रैंडन :)
बार्सिलोना

1
जाहिरा तौर पर, यदि मैं ट्रांज़िट्टो का उपयोग करके दृश्य को पुन: ट्रिगर करता हूं, तो दृश्य में इनपुट किए गए मान फ़्लश नहीं होंगे। वैसे भी हम मूल्यों / js / दृश्य को ताज़ा करने के लिए मजबूर कर सकते हैं? PS - पृष्ठ पुनः लोड करना एक विकल्प नहीं है क्योंकि दृश्य एक ओवरले है
स्वनिधि

10

$state.transitionToएक नए राज्य में स्थानांतरित। ज्यादातर मामलों में, आपको इसका उपयोग करने की आवश्यकता नहीं है, आप पसंद कर सकते हैं$state.go

यह एक optionsवस्तु में कुछ पैरामीटर लेता है :

  • location: यदि trueलोकेशन बार में url अपडेट होगा, यदि falseनहीं। यदि स्ट्रिंग "replace", url को अपडेट करेगा और पिछले इतिहास रिकॉर्ड को भी बदल देगा।
  • inherit: अगर trueमौजूदा url से url पैरामीटर विरासत में मिलेंगे।
  • relative (स्टेटऑबजेक्ट, डिफॉल्ट 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');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.