5

मैं मार्गों के मॉडल को कैसे बनाए रखूं। उदाहरण के लिए मेरे पास होम पेज पर लोड प्रोफाइल की एक सूची है। होम पेज में अधिक प्रोफाइल लोड करने के लिए "लोड लोड" एक्शन भी शामिल है, मूल रूप से मॉडल को डेटा को दबाकर। किसी विशिष्ट प्रोफ़ाइल पर क्लिक करने पर, उस प्रोफ़ाइल के लिए विवरण-दृश्य मार्गों के माध्यम से सक्रिय किया जाता है। विवरण दृश्य में एक बैक बटन होता है जो उपयोगकर्ता को होम पेज पर रीडायरेक्ट करता है। "लोड लोड" कार्रवाई से लोड किए गए होम पेज डेटा (प्रोफाइल) पर वापस जाने पर कार्रवाई खो जाती है। मैं "लोड अधिक" के साथ मॉडल बनाए रखने की जरूरत डेटाangularjs मार्गों में स्कोप चर बनाए रखता है

prepended नीचे कोड का इस्तेमाल किया

/* Controllers */ 
var profileControllers = angular.module('profileControllers', ['profileServices']) 


profileControllers.controller('profileListCtrl', ['$scope','$location', 'Profile','$http', 
    function($scope,$location, Profile,$http) { 
    $scope.Profiles = Profile.query(function(){ 

     if($scope.Profiles.length < 3) { 
        $('#load_more_main_page').hide(); 
       } 
     }); 
    $scope.orderProp = 'popular'; 
    $scope.response=[]; 

    //LOADMORE 
    $scope.loadmore=function() 
    { 

     $http.get('profiles/profiles.php?profile_index='+$('#item-list .sub-item').length).success(function(response){ 
      if(response) { 
       var reponseLength = response.length; 
       if(reponseLength > 1) { 
        $.each(response,function(index,item) { 


         $scope.Profiles.push({ 
              UID: response[index].UID, 
              id: response[index].id, 
              popular: response[index].popular, 
              imageUrl: response[index].imageUrl, 
              name: response[index].name, 
              tags: response[index].tags, 
              category: response[index].category 
             }); 

         }); 
       } 
       if(reponseLength < 3) { 
        $('#load_more_main_page').hide(); 
       } 
      } 

     }); 


    } 

    }]); 





    /* App Module */ 

var profileApp = angular.module('profileApp', [ 
    'ngRoute', 
    'profileControllers', 
    'profileServices', 
]); 



profileApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/profiles', { 
     templateUrl: 'partials/profile-list.html', 
     controller: 'profileListCtrl', 
     resolve: { 
      deps: function ($q, $rootScope) { 
       var deferred = $q.defer(); 
       var dependencies = ['js/sort.js']; 
       $script(dependencies, function() { 
        $rootScope.$apply(function() { 
         deferred.resolve(); 
        }); 
       }); 
       return deferred.promise; 
      } 
     } 
     }). 
     when('/profiles/:profileId', { 
     templateUrl: 'partials/profile-detail.html', 
     controller: 'profileDetailCtrl', 

     }). 
     when('/profiles/cat/:category', { 
     templateUrl: 'partials/profile-list-category.html', 
     controller: 'profileCategoryListCtrl', 

     }). 
     when('/create/', { 
     templateUrl: 'partials/profile-create.html', 
     controller: 'profileCreateCtrl', 
     css: ['css/createprofile.css','css/jquery-ui-1.10.4.custom.min.css','css/spectrum.css'], 

     }). 
     otherwise({ 
     redirectTo: '/profiles' 
     }); 
    }]); 
+0

लग रहा है। https://github.com/angular-ui/ui-router –

+0

@ माइकरोबिन्सन मैंने अपने प्रश्न में एप्लिकेशन में इस्तेमाल किया गया कोड जोड़ा है, क्या आप कृपया सलाह दे सकते हैं कि मैं लोड-व्यू मॉडल को लोड से प्रीपेड डेटा के साथ कैसे रख सकता हूं विवरण दृश्य से वापस देखने के लिए वापस देखने पर कार्रवाई करने के लिए और अधिक कॉल करें? –

उत्तर

0

आप एक AngularJS service उपयोग कर सकते हैं कि क्या करना है। सेवाएं सिंगलेट हैं और मार्ग परिवर्तनों में डेटा स्टोर कर सकती हैं।

myModule.factory('serviceId', function() { 
    var shinyNewServiceInstance = { 
    // your data here 
    }; 
    return shinyNewServiceInstance; 
}); 

और अपने नियंत्रक में उपयोग:

controller('MyController', function($scope, serviceId) { 
    // use serviceId here 
}); 
+0

मैं सूची में होमपेज पर प्रारंभिक डेटा लोड करने के लिए, एक सेवा का उपयोग कर रहा हूं। लोडमोर $ http.get के माध्यम से एक कॉल करता है जो मॉडल को डेटा धक्का देता है। मैं इसे विस्तार दृश्य से कैसे लिंक करूं, यदि आप एक उदाहरण प्रदान कर सकते हैं तो यह बहुत अच्छा होगा। आपके विवरण दृश्य के नियंत्रक में –

+0

सेवा का संदर्भ देता है (जैसा कि 'MyController' और' serviceId' 'के उदाहरण में दिखाया गया है)। आप नियंत्रकों में सेवा में मौजूद डेटा तक पहुंच सकते हैं। यदि स्पष्ट नहीं है तो आप अपने स्रोतों पर अधिक जानकारी प्रदान कर सकते हैं। – Sebastian

+0

मैंने नियंत्रक, लोडमोर, सेवा कोड –

0

आप $scope चर खो रहे हैं, क्योंकि कोणीय में एक controller एक सिंगलटन नहीं है। जब आप वापस नेविगेट करते हैं तो इसका एक नया उदाहरण उत्पन्न होगा।

यदि आप मार्ग-परिवर्तनों के बीच किसी भी प्रकार के चर स्टोर करना चाहते हैं, तो आप इसे करने के लिए service बना सकते हैं।

+0

के कार्यान्वयन के लिए पढ़ सकता हूं, मैंने एप्लिकेशन में इस्तेमाल किया गया कोड जोड़ा है, क्या आप कृपया गाइड कर सकते हैं कि मैं मॉडल को कैसे बनाए रखूं विवरण लोड से वापस देखने के लिए "लोडमोर" से प्रीपेड डेटा सूची दृश्य –

+0

'अन्य सेवाओं' का उपयोग करने के तरीके के बारे में संसाधनों के लिंक प्रदान करने के 3 अन्य उत्तर हैं। यदि आपके पास उनको देखने और लागू करने का प्रयास करने के बाद कोई विशिष्ट प्रश्न हैं समाधान मैं वह करने में सक्षम हो सकता है एलपी, लेकिन * कृपया मेरे कोड को ठीक करें * एक विशिष्ट सवाल नहीं है। अन्य उत्तरों में लिंक पढ़ने के बाद आपने क्या प्रयास किया? – ivarni

+0

मैं वर्तमान में लोडमोर के लिए भी सेवा का उपयोग करने की कोशिश कर रहा हूं, ऐसा करने पर मैं सेवा को विस्तार दृश्य नियंत्रक के साथ साझा करने की योजना बना रहा हूं। मैं ऐसा करके अनुमान लगा रहा हूं कि मैं सेवा के माध्यम से मार्गों पर डेटा साझा करने में सक्षम हूं। अभी भी इस पर काम कर रहे हैं –

5

एक सेवा आमतौर पर विचारों के बीच डेटा साझा करने का स्वीकार्य तरीका है। चूंकि यह एक सिंगलटन है और मार्ग परिवर्तन पर पुन: उत्पन्न नहीं होता है, तो आप वहां डेटा को "कैश" कर सकते हैं और इसे किसी भी नियंत्रक से पुनर्प्राप्त कर सकते हैं जिस पर सेवा इंजेक्शन दी जाती है।

इस सवाल की दूसरी जवाब कोड के साथ बताते हैं:

Same data in multiple views using AngularJS

+0

मैंने प्रश्न में इस्तेमाल होने वाले कोड को जोड़ा है, मेरी चिंता लोडमोर डेटा है, प्रोफ़ाइल के विस्तार दृश्य से सूची दृश्य पर वापस लौटने पर, मैं "लोड लोड" के साथ मॉडल को कैसे बनाए रखूं पहले विस्तार से आने से पहले डेटा पहले से तैयार किया गया था –

0

एक कोणीय सेवा बनाएँ और विभिन्न मार्गों के आसपास इसे पारित।

विस्तृत जवाब यहाँ - जैसे आप ui रूटर की जरूरत है, जो दिखाई देने वाले राज्य को बनाए रखने के https://stackoverflow.com/a/16559855/907388

संबंधित मुद्दे