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: trueinherit: truerelative: $state.$currentnotify: truereload: falseयह अधिक सुविधाजनक है क्योंकि सिंटैक्स सरल है। आप इसे केवल राज्य के नाम से ही पुकार सकते हैं।
$state.go('home');