दिलचस्प पोस्ट
Symfony2: फ़ॉर्म के अनुरोध को बाध्य करने के बाद फ़ॉर्म सत्यापन त्रुटियां कैसे प्राप्त करें मैं जावा स्कैनर में सीमांकक का उपयोग कैसे करूं? स्कला में सही-सहनीय तरीके क्या हैं? जावास्क्रिप्ट का उपयोग कर ऑपरेटिंग सिस्टम संस्करण कैसे खोजें IE9 केवल सीएसएस के माध्यम से लक्षित करें IPhone ऐप के लिए कस्टम UITabBar बनाने का वास्तव में अच्छा तरीका है? मैं Pythons समय के साथ प्रदर्शन के परीक्षण के लिए एक कोड खंड कैसे कर सकता हूँ? नेविगेटर.ऑनलाइन हमेशा काम नहीं करता है क्या तर्क AsyncTask <arg1, arg2, arg3> में पारित किया गया है? .htaccess सभी पृष्ठों को नए डोमेन पर पुनर्निर्देशित करता है सी ++ में आंकड़ा ट्री ऑर्डर करें लूप करते समय स्कैनर इनपुट सत्यापन AngularJS: एसिंक्रोनस फ़िल्टर प्रारंभ करें सर्च सरणी की रिपोर्ट "नहीं मिली" भले ही यह पाया गया है क्या हम आम तौर पर साधारण दोहरी शब्दों के बजाए फ्लोट के लिए फ्लोट लिटिक्ल्स का इस्तेमाल करते हैं?

पेज लोड पर कोणीय नियंत्रक फ़ंक्शन कैसे निष्पादित करें?

वर्तमान में मेरे पास एक कोणीय। Js पृष्ठ है जो शोध और प्रदर्शित परिणामों की अनुमति देता है। उपयोगकर्ता एक खोज परिणाम पर क्लिक करता है, फिर वापस बटन पर क्लिक करता है मैं खोज परिणामों को फिर से प्रदर्शित करना चाहता हूं लेकिन मैं यह निष्पादित करने के लिए खोज को ट्रिगर करने के लिए कैसे काम नहीं कर सकता। यहाँ विस्तार है:

  • मेरा Angular.js पृष्ठ एक खोज पृष्ठ है, जिसमें एक खोज फ़ील्ड और एक खोज बटन है। उपयोगकर्ता एक क्वेरी में मैन्युअल रूप से टाइप कर सकता है और एक बटन दबा सकता है और एजेक्स क्वेरी निकाल दी जाती है और परिणाम प्रदर्शित होते हैं। मैं खोज शब्द के साथ यूआरएल अपडेट करता हूं यह सब ठीक काम करता है
  • उपयोगकर्ता खोज के परिणाम पर क्लिक करता है और एक अलग पृष्ठ पर ले जाता है – यह भी ठीक काम करता है
  • उपयोगकर्ता वापस बटन को क्लिक करता है, और मेरे कोण वाले खोज पृष्ठ पर वापस जाता है, और खोज शब्द सहित सही यूआरएल प्रदर्शित होता है। सभी ठीक काम करता है
  • मैंने URL में खोज शब्द को खोज फ़ील्ड मान बांधा है, इसलिए इसमें अपेक्षित खोज शब्द है सभी ठीक काम करता है

मैं "खोज बटन" दबाकर उपयोगकर्ता के बिना फिर से निष्पादित करने के लिए खोज फ़ंक्शन कैसे प्राप्त करूं? अगर यह jquery था तो मैं एक समारोह में दस्तावेज कार्यान्वित होगा समारोह मैं Angular.js समकक्ष नहीं देख सकता।

Solutions Collecting From Web of "पेज लोड पर कोणीय नियंत्रक फ़ंक्शन कैसे निष्पादित करें?"

एक ओर @ मार्क-राजकोक ने कहा कि आप केवल निजी आंतरिक फ़ंक्शन के साथ भाग ले सकते हैं:

 // at the bottom of your controller var init = function () { // check if there is query in url // and fire search in case its value is not empty }; // and fire it after definition init(); 

इसके अलावा आप एनजी-इनट डायरेक्टिव पर नजर डाल सकते हैं। कार्यान्वयन बहुत पसंद होगा:

 // register controller in html <div data-ng-controller="myCtrl" data-ng-init="init()"></div> // in controller $scope.init = function () { // check if there is query in url // and fire search in case its value is not empty }; 

लेकिन इसके बारे में कोणीय प्रलेखन के रूप में ध्यान रखना (v1.2 के बाद से) उसके लिए ng-init उपयोग न करें। हालांकि आईमो यह आपके ऐप के आर्किटेक्चर पर निर्भर करता है।

मैं ng-init उपयोग करता हूं जब मैं बैक-एंड से कोयल ऐप में एक मान देना चाहता था:

 <div data-ng-controller="myCtrl" data-ng-init="init('%some_backend_value%')"></div> 

इसे इस्तेमाल करे?

 $scope.$on('$viewContentLoaded', function() { //call it here }); 

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

यह मैं करता हूं और यह मेरे लिए काम करता है:

 $scope.$on('$routeChangeSuccess', function () { // do something }); 

जब तक आप यू-राउटर का उपयोग नहीं कर रहे हों तो यह है:

 $scope.$on('$stateChangeSuccess', function () { // do something }); 
 angular.element(document).ready(function () { // your code here }); 

दिमित्री के / मार्क का समाधान मेरे लिए काम नहीं करता, लेकिन $ टाइमआउट फ़ंक्शन का उपयोग करके यह सुनिश्चित करने के लिए अच्छी तरह से काम किया जाता है कि आपका कोड केवल मार्कअप के बाद चलाया जाता है

 # Your controller, including $timeout var $scope.init = function(){ //your code } $timeout($scope.init) 

आशा करता हूँ की ये काम करेगा।

आप ऐसा कर सकते हैं यदि आप दृश्य को देखना चाहते हैं, तो सामग्री को बदलना और फिर कुछ करें। $ स्कोप का उपयोग करते हुए $ काम पर भी अलग होता है लेकिन विशेषकर जब आपके पास रूटिंग पर एक पेज मोड होता है

  $scope.$watch('$viewContentLoaded', function(){ // do something }); 

आप कोणीय की $ विंडो ऑब्जेक्ट का उपयोग कर सकते हैं:

 $window.onload = function(e) { //your magic here } 

एक अन्य विकल्प:

 var myInit = function () { //... }; angular.element(document).ready(myInit); 

( https://stackoverflow.com/a/30258904/148412 के माध्यम से)

$ मार्ग प्रदाता का उपयोग करते समय आप .state पर समाधान कर सकते हैं और अपनी सेवा को बूटस्ट्रैप कर सकते हैं। यह कहने के लिए है कि आप अपनी सेवा को हल करने के बाद ही नियंत्रक और दृश्य को लोड करने जा रहे हैं:

ui-मार्गों

  .state('nn', { url: "/nn", templateUrl: "views/home/n.html", controller: 'nnCtrl', resolve: { initialised: function (ourBootstrapService, $q) { var deferred = $q.defer(); ourBootstrapService.init().then(function(initialised) { deferred.resolve(initialised); }); return deferred.promise; } } }) 

सर्विस

 function ourBootstrapService() { function init(){ // this is what we need } } 

मिला दिमित्री Evseev उत्तर काफी उपयोगी है।

मामला 1: केवल कोणीय जेएस का प्रयोग करना:
पेज लोड पर एक विधि को निष्पादित करने के लिए, ng-init इस्तेमाल देख सकते हैं और नियंत्रक में init विधि को घोषित कर सकते हैं, ने कहा है कि एनजी-इनट में कोण डॉक्स के अनुसार, भारी फ़ंक्शन का उपयोग अनुशंसित नहीं है:

इस निर्देश को आपके टेम्पलेट में अनावश्यक मात्रा में तर्क जोड़ने के लिए दुरुपयोग किया जा सकता है। एनजीइआईटीआईटी का केवल कुछ उपयुक्त उपयोग हैं, जैसे कि एनजीआरईपीट के विशेष गुणों को अलियासिंग के लिए, जैसा कि नीचे डेमो में देखा गया है; और सर्वर साइड स्क्रिप्टिंग के माध्यम से डेटा इंजेक्शन के लिए। इन कुछ मामलों के अलावा, आप एक क्षेत्र पर मूल्यों को इनिशियलाइज़ करने के लिए एनजीआईआईटी के बजाय नियंत्रकों का उपयोग करना चाहिए।

HTML:

 <div ng-controller="searchController()"> <!-- renaming view code here, including the search box and the buttons --> </div> 

नियंत्रक:

 app.controller('SearchCtrl', function(){ var doSearch = function(keyword){ //Search code here } doSearch($routeParams.searchKeyword); }) 

चेतावनी: इस नियंत्रक को किसी अन्य उद्देश्य के लिए किसी अन्य उद्देश्य के लिए उपयोग न करें क्योंकि इससे खोज पद्धति भी वहां निष्पादित हो जाएगी।

केस 2: आयनिक का उपयोग करना:
उपरोक्त कोड काम करेगा, बस यह सुनिश्चित करें कि दृश्य कैश को route.js में अक्षम किया गया है:

route.js

 .state('app', { url : '/search', cache : false, //disable caching of the view here templateUrl : 'templates/search.html' , controller : 'SearchCtrl' }) 

उम्मीद है की यह मदद करेगा

मेरे पास एक ही समस्या थी और केवल यह समाधान मेरे लिए काम किया था (यह एक पूर्ण DOM लोड होने के बाद एक फ़ंक्शन चलाता है)। पेज लोड होने के बाद मैं इसे स्क्रॉल करने के लिए एंकर का उपयोग करता हूं:

 angular.element(window.document.body).ready(function () { // Your function that runs after all DOM is loaded }); 

फिर भी एक और विकल्प यदि आपके पास सिर्फ उस पृष्ठ के लिए एक नियंत्रक है:

 (function(){ //code to run }()); 

आप किसी सामान्य सेवा में खोज परिणामों को सहेज सकते हैं जो कहीं से भी उपयोग कर सकते हैं और किसी अन्य पेज पर नेविगेट करते समय साफ़ नहीं होता है, और फिर आप बैक बटन के क्लिक के लिए सहेजे गए डेटा के साथ खोज परिणाम सेट कर सकते हैं

 function search(searchTerm){ //retrieve the data here; RetievedData=CallService(); CommonFunctionalityService.saveSerachResults(RetievedData); } For your backbutton function Backbutton(){ RetievedData=CommonFunctionalityService.retrieveResults(); }