नीचे दिए गए परिदृश्य में संदेश पास करने का सबसे अच्छा तरीका क्या है।विचारों के बीच ऑब्जेक्ट पास करना (फ़्लैश संदेश)
$scope.p.$save
की सफलता परिदृश्य में, परिणाम में एक संदेश (res.message
) है, जिसे मैं अगले दृश्य ($location.path("/test/"+res.reply.Id)
) में प्रदर्शित करना चाहता हूं। AngularJS के बिना, मैं इसे यूआरएल में पास कर सकता हूं या इसे सत्र कुकीज़ में सहेज सकता हूं। लेकिन, मुझे लगता है कि AngularJS में एक बेहतर तरीका हो सकता है क्योंकि कोई ब्राउज़र रीडायरेक्ट नहीं है और राज्य उपलब्ध होना चाहिए। इस लक्ष्य को हासिल करने का सबसे अच्छा तरीका क्या है?
इसे रूटस्कोप में सेट करना इसे दिखाता है, जबकि मैं ब्राउज़र बैक बटन का उपयोग करता हूं, और संदेश का दायरा केवल नए दृश्य के लिए पहली नेविगेशन के लिए होना चाहिए।
function NewCtrl(Phone, $location, $rootScope, $scope) {
$scope.p = new Phone();
$scope.save = function() {
$scope.p.$save(
{},
function (res) {
$rootScope.message = res.message **//<-- this will cause message still set when using browser back button, etc**
$location.path("/test/"+res.reply.Id); **//<-- Req: needs to pass the message to next view**
}, function (res) {
//TODO
}
);
};
}
....
PhoneApp.factory('Phone', function ($resource) {
return $resource('/api/test/:_id')
});
धन्यवाद आप आपकी मदद और प्रयास के लिए बहुत ज्यादा। – bsr
मैंने अभी इसे संपादित किया है, मैंने एक ** अधिक ** बेहतर और सरल कार्यान्वयन के बारे में सोचा, जो एक सरणी का उपयोग करके एकाधिक चमक का समर्थन करता है। –
आप कभी भी $ $ChangeStart' पर विचार कर सकते हैं क्योंकि सफलता कभी-कभी (आपके सेटअप के आधार पर) प्रक्रिया में बहुत देर हो चुकी है (नया पृष्ठ पहले ही लोड हो सकता है और अलर्ट स्कोप हल हो सकता है)। –