angularjs - सामाजिक नेटवर्क में साझा करने के लिए अंक वाले अंगुलेज




facebook twitter facebook-javascript-sdk (2)

सबसे पहले, मुझे यह स्पष्ट करना है कि मैं प्रीरेडर का उपयोग कर रहा हूं। IO और सब कुछ अच्छा है। अगर मैं फेसबुक में यूआरएल पेस्ट करता हूं तो साइट को सही तरीके से साझा किया गया है।

समस्या साइट पर मेरे पास सोशल नेटवर्क की पसंद / ट्वीट बटन पर है।

1) मेरे पास पहला मुद्दा यह है कि फेसबुक बटन और टिप्पणी अनुभाग "कभी-कभी" दिखाई देते हैं ... कुछ अवसरों में, वे दिखाई देते हैं, लेकिन अगर मैं पृष्ठ को ताज़ा करता हूं या यदि मैं पेज को लोड करने के लिए एक अलग समय की कोशिश करता हूं, बटन नहीं हैं मूल कारण पाने के लिए मुझे कोई रिश्ते नहीं मिला ... 2) दूसरी बात यह है कि जब बटन (फेसबुक) साझा करने के लिए और कलरव (ट्विटर) पूर्ण यूआरएल लोड न हो जाए यूआरएल सर्वर से बना है + पृष्ठ का एक मार्ग + वीडियो का आईडी (वीडियो देखने के लिए एक वेब पेज है)। लेकिन जब मैं कुछ मामलों में बटन पर क्लिक करता हूं तो वीडियो आईडी URL में नहीं होती है, जो बहुत अजीब है।

मैं जिस साइट के बारे में बात कर रहा हूँ उसका लिंक है: https://www.granojo.com/video/10334

कोड है:

<div class="text-center">
    <div class="fb-like"  style="top: -5px;" data-send="true" data-href="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}" data-send="false" data-layout="button_count" data-width="450" data-show-faces="true"></div>
    <a data-url="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}" data-text="{{values.object.name}}" href="https://twitter.com/share" class="twitter-share-button" data-lang="es" data-hashtags="{{values.object.name | nospace}}">Twittear</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
    <!-- Place this tag where you want the +1 button to render. -->
    <div class="g-plusone" data-size="medium" data-href="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}"></div>

    <!-- Place this tag after the last +1 button tag. -->
    <script type="text/javascript">
        window.___gcfg = {lang: 'es'};

        (function() {
            var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
            po.src = 'https://apis.google.com/js/plusone.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
        })();
    </script>
</div>

और मेरे core.run में मेरे पास है:

$window.fbAsyncInit = function() {
    FB.init({
        appId: 'xxxxxxx',
        xfbml: true,
        version    : 'v2.6'
    });
};
(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/es_LA/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}

Answers

आपका फ़ंक्शन कॉल करने के लिए नहीं लगता है। मैं क्रोम कंसोल में मैन्युअल रूप से window.fbAsyncInit(); चलाता window.fbAsyncInit(); और बटन आदि की तरह आपके फेसबुक ठीक भरी हुई है। ऐसा लगता है कि fbAyncinit(); सही समय पर फोन नहीं मिल रहा है

जब आप कुछ भी क्लिक करते हैं, तो मैं फ़ंक्शन को लोड इवेंट में बाँध दूँगा, इसलिए जब पृष्ठ सरल कॉल लोड करना समाप्त करता है:

 window.fbAsyncInit();

यदि वह काम नहीं करता है तो मैं इसे कॉल करने से पहले शायद 250ms की छोटी देरी जोड़ूंगा।


AngularJS तीन शक्तिशाली कार्यों की सहायता से डेटा-बाइंडिंग तंत्र को संभालता है: $watch() , $digest() और $apply() । अधिकांश समय AngularJS $ scope को कॉल करेगा। $ Watch () और $ scope। $ Digest (), लेकिन कुछ मामलों में आपको इन मानों को मैन्युअल रूप से नए मानों के साथ अपडेट करने के लिए कॉल करना पड़ सकता है।

$ घड़ी () : -

इस फ़ंक्शन का उपयोग $ स्कोप पर एक चर में परिवर्तनों का निरीक्षण करने के लिए किया जाता है। यह तीन मानकों को स्वीकार करता है: अभिव्यक्ति, श्रोता और समानता वस्तु, जहां श्रोता और समानता वस्तु वैकल्पिक पैरामीटर हैं।

$ पाचन () -

यह फ़ंक्शन $ स्कोप ऑब्जेक्ट में सभी घड़ियों और उसके बच्चे $ स्कोप ऑब्जेक्ट्स के माध्यम से पुनरावृत्त करता है
(अगर इसमें कोई है)। जब $ पाचन () घड़ियों पर पुनरावृत्त होता है, तो यह जांचता है कि अभिव्यक्ति का मूल्य बदल गया है या नहीं। यदि मान बदल गया है, तो AngularJS श्रोता को नए मान और पुराने मान के साथ कॉल करता है। $ Digest () फ़ंक्शन को तब भी कहा जाता है जब AngularJS सोचता है कि यह आवश्यक है। उदाहरण के लिए, बटन क्लिक करने के बाद, या AJAX कॉल के बाद। आपके पास कुछ ऐसे मामले हो सकते हैं जहां AngularJS आपके लिए $ digest () फ़ंक्शन नहीं कहता है। उस स्थिति में आपको इसे स्वयं कॉल करना होगा।

$ आवेदन () -

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







angularjs facebook twitter facebook-javascript-sdk