AngularJS में, मैं कभी-कभी हम उपयोग करते हैं $state.transitionTo()
और कभी-कभी हम उपयोग करते हैं $state.go()
। क्या कोई मुझे बता सकता है कि वे अलग कैसे हैं और जब एक को दूसरे पर इस्तेमाल किया जाना चाहिए?
AngularJS में, मैं कभी-कभी हम उपयोग करते हैं $state.transitionTo()
और कभी-कभी हम उपयोग करते हैं $state.go()
। क्या कोई मुझे बता सकता है कि वे अलग कैसे हैं और जब एक को दूसरे पर इस्तेमाल किया जाना चाहिए?
जवाबों:
क्या आप एंगुलरयू राउटर की बात कर रहे हैं ? यदि ऐसा है, विकी अंतर निर्दिष्ट करता है :
$ 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()
ज्यादातर स्थितियों में अनुशंसित है।
$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');