दिलचस्प पोस्ट
स्प्रिंग एमवीसी – एचटीटीपी मीडिया टाईप नॉट एसेक्सेबल एक्सपेशेशन LINQ से एसक्यूएल: एकाधिक कॉलम पर एकाधिक शामिल होते हैं। क्या यह संभव है? दो-आयामी सरणी के लिए एक सूचक बनाएं जावास्क्रिप्ट बिना स्ट्रैटेबल के अंदर स्ट्रैटेबल – जैसे PHP आईफ्रेम से एक मूल विंडो फ़ंक्शन कॉल करना किसी सेट से एक यादृच्छिक तत्व को चुनना एंड्रॉइड TYPE_LINEAR_ACCELERATION सेंसर – यह क्या दिखाता है? गतिशील रूप से जोड़ा गया सामग्री के लिए jQuery क्लिक ईवेंट जोड़ना ऊंचाई में EXC_BAD_ACCESS फ़ायररो I सिद्धांत 2.0 संस्थाओं के अंदर EntityManager का उपयोग करना अगर फ़ील्ड MySQL में शून्य है तो 0 लौटें डेटाबेस तालिका में क्रमबद्ध क्रम कॉलम का उपयोग करना चर संयोजन के लिए एकल उद्धरण या दोहरे उद्धरण? कैसे जावा में बाइट सरणी में छवि कन्वर्ट करने के लिए? POST JSON 415 असमर्थित मीडिया प्रकार, स्प्रिंग 3 एमवीसी के साथ विफल रहता है

सामग्री के बाद कॉल करने के लिए एन्जिलरज इवेंट लाए जाते हैं

मेरे पास एक फ़ंक्शन है जिसे मैं पृष्ठ सामग्री लोड होने के बाद कॉल करना चाहता हूं। मैंने $ viewContentLoaded के बारे में पढ़ा है और यह मेरे लिए काम नहीं करता है मुझे कुछ पसंद है

document.addEventListener('DOMContentLoaded', function () { //Content goes here }, false); 

कॉलर कॉलर मेरे लिए AngularJs नियंत्रक में काम नहीं करता।

वेब के समाधान से एकत्रित समाधान "सामग्री के बाद कॉल करने के लिए एन्जिलरज इवेंट लाए जाते हैं"

$ ViewContentLoaded के दस्तावेज़ीकरण के अनुसार, यह काम करना चाहिए

हर बार एनजीवी्यू सामग्री पुनः लोड हो जाती है।

$viewContentLoaded इवेंट उत्सर्जित होता है जिसका मतलब है कि इस इवेंट को प्राप्त करने के लिए आपको पेरेंट कंट्रोलर की आवश्यकता है

 <div ng-controller="MainCtrl"> <div ng-view></div> </div> 

MainCtrl आप ईवेंट सुन सकते हैं

  $scope.$on('$viewContentLoaded', function(){ //Here your view content is fully loaded !! }); 

डेमो की जांच करें

तय – 2015.06.09

एक डायरेक्टिव और ऐनुलर एलिमेंट ready विधि का प्रयोग करें जैसे:

js

 .directive( 'elemReady', function( $parse ) { return { restrict: 'A', link: function( $scope, elem, attrs ) { elem.ready(function(){ $scope.$apply(function(){ var func = $parse(attrs.elemReady); func($scope); }) }) } } }) 

एचटीएमएल

 <div elem-ready="someMethod()"></div> 

या नियंत्रक के रूप में उपयोग करने वालों के लिए …

 <div elem-ready="vm.someMethod()"></div> 

इसका लाभ यह है कि आप जितना चाहें उतना व्यापक या दानेदार w / आपकी यूआई हो सकते हैं और आप अपने नियंत्रकों से डीओएम तर्क को निकाल रहे हैं। मैं तर्क करता हूं कि यह अनुशंसित कोणीय रास्ता है

आपको इस निर्देश को प्राथमिकता देने की आवश्यकता हो सकती है, यदि आपके पास एक ही नोड पर अन्य निर्देशों का संचालन है।

कोणीय <1.6.X

 angular.element(document).ready(function () { console.log('page loading completed'); }); 

कोनाल> = 1.6.एक्स

 angular.element(function () { console.log('page loading completed'); }); 

आप HTML तत्व के बाद {{YourFunction()}} जोड़कर इसे सीधे कॉल कर सकते हैं

यहां एक Plunker Link है Plunker Link

Google चार्ट से निपटने के दौरान मुझे इस तर्क को लागू करना था मैंने जो किया था वह मेरे एचटीएमएल के अंत में नियंत्रक परिभाषा के साथ मैंने जोड़ा।

  <body> -- some html here -- --and at the end or where ever you want -- <div ng-init="FunCall()"></div> </body> 

और उस समारोह में बस अपने तर्क को कॉल करें

 $scope.FunCall = function () { alert("Called"); } 

यदि आप पहले से ही प्रगति त्रुटि में $ डायजेस्ट प्राप्त कर रहे हैं, तो इससे मदद मिल सकती है:

 return { restrict: 'A', link: function( $scope, elem, attrs ) { elem.ready(function(){ if(!$scope.$$phase) { $scope.$apply(function(){ var func = $parse(attrs.elemReady); func($scope); }) } else { var func = $parse(attrs.elemReady); func($scope); } }) } } 

मैं {{myFunction()}} टेम्पलेट में उपयोग कर रहा था लेकिन फिर नियंत्रक के अंदर $timeout का उपयोग करने के लिए यहां एक और रास्ता मिला। सोचा कि मैं इसे साझा करूँगा, मेरे लिए महान काम करता है

 angular.module('myApp').controller('myCtrl', ['$timeout', function($timeout) { var self = this; self.controllerFunction = function () { alert('controller function');} $timeout(function () { var vanillaFunction = function () { alert('vanilla function'); }(); self.controllerFunction(); }); }]); 

पृष्ठ भार के बाद चलना आंशिक रूप से खिड़की लोड इवेंट में ईवेंट श्रोता सेट करके संतुष्ट होना चाहिए

 window.addEventListener("load",function()...) 

module.run(function()...) अंदर module.run(function()...) कोणीय का आपके पास मॉड्यूल संरचना और निर्भरता तक पहुंच होगी।

आप संचार पुलों के लिए घटनाओं को broadcast और बाहर emit सकते हैं

उदाहरण के लिए:

  • मॉड्यूल सेट ऑनलोड इवेंट और लॉजिक का निर्माण
  • मॉड्यूल प्रसारण घटना नियंत्रकों के लिए जब यह आवश्यक तर्क
  • नियंत्रक मॉड्यूल ऑनलोड प्रक्रियाओं के आधार पर अपने स्वयं के तर्क को सुनेंगे और निष्पादित करेंगे।
 var myM = angular.module('data-module'); myM.directive('myDirect',['$document', function( $document ){ function link( scope , element , attrs ){ element.ready( function(){ } ); scope.$on( '$viewContentLoaded' , function(){ console.log(" ===> Called on View Load ") ; } ); } return { link: link }; }] ); 

ऊपर विधि मेरे लिए काम किया

यदि आप कुछ तत्व को पूरी तरह भरी हुई हैं, तो उस तत्व पर एनजी-इनइट का उपयोग करें।

जैसे <div class="modal fade" id="modalFacultyInfo" role="dialog" ng-init="initModalFacultyInfo()"> ..</div>

initModalFacultyInfo () फ़ंक्शन नियंत्रक में मौजूद होना चाहिए।

मुझे पता चला कि यदि आपके पास नेस्टेड दृश्य हैं – $ viewContentLoaded नेस्टेड दृश्यों में से प्रत्येक के लिए ट्रिगर हो जाता है मैंने अंतिम $ viewContentLoaded को खोजने के लिए इस समाधान को बनाया है। $ विंडो सेट करने के लिए ठीक काम करने लगता है। पूर्वरेखा पूर्वरेडर द्वारा आवश्यक के रूप में तैयार (मुख्य app.js में .run () में जाता है):

 // Trigger $window.prerenderReady once page is stable // Note that since we have nested views - $viewContentLoaded is fired multiple // times and we need to go around this problem var viewContentLoads = 0; var checkReady = function(previousContentLoads) { var currentContentLoads = Number(viewContentLoads) + 0; // Create a local copy of the number of loads if (previousContentLoads === currentContentLoads) { // Check if we are in a steady state $window.prerenderReady = true; // Raise the flag saying we are ready } else { if ($window.prerenderReady || currentContentLoads > 20) return; // Runaway check $timeout(function() {checkReady(currentContentLoads);}, 100); // Wait 100ms and recheck } }; $rootScope.$on('$stateChangeSuccess', function() { checkReady(-1); // Changed the state - ready to listen for end of render }); $rootScope.$on('$viewContentLoaded', function() { viewContentLoads ++; }); 

मैं सामग्री लोड होने के लिए इंतजार करने के लिए setInterval का उपयोग करता हूं। मुझे उम्मीद है कि यह आपको उस समस्या को हल करने में मदद कर सकता है

 var $audio = $('#audio'); var src = $audio.attr('src'); var a; a = window.setInterval(function(){ src = $audio.attr('src'); if(src != undefined){ window.clearInterval(a); $('audio').mediaelementplayer({ audioWidth: '100%' }); } }, 0);