мета-теги, социальные кнопки и angularjs

m создание сайта с использованием нескольких просмотров. Тег и теги страницы изменяются с помощью переменной $ rootScope. так у меня что то типа



   
   

Всякий раз, когда каждое представление загружается на веб-сайт, изменяется переменная page_title, а заголовок и теги og: title обновляются (все работает как положено).

Проблема в том, что мне нужно, на некоторых экранах, чтобы загрузить facebook, Google + и кнопку Twitter. Я могу отобразить их правильно, но если я нажму на каждую из них, заголовок страницы будет выглядеть примерно так:

{{page_title}}

Мы пытались отложить выполнение сценариев каждой кнопки, используя setTimeOut, но безрезультатно. Но сценарии просто читают все, что написано, они неразобрать заголовок страницы.

Кто-нибудь знает обходной путь к этому?

Спасибо

Ответы на вопрос(2)

Также есть возможность повторного рендеринга виджетов Facebook. Использовать ихразбор метод:

FB.XFBML.parse();

после того, как ваш угловой материал закончен. Это'не работает для моей кнопки «Поделиться» (пока !!), но я проверил ее на лайках, и этокруто По сути, он повторно сканирует DOM и отображает виджеты Facebook. Вы также можете передать ему один элемент, что-то вроде этой директивы:

'use strict';    
angular.module('ngApp')
.directive("fbLike", function($rootScope) {
    return function (scope, iElement, iAttrs) {
        if (FB && scope.$last) {
            FB.XFBML.parse(iElement[0]);
        }
    };
});

Этот фрагмент будет повторно сканировать DOM для hbml fb-подобных виджетов html5 при создании последнего элемента в угловом повторителе.

Решение Вопроса

не может быть сделано с помощью JavaScript. Некоторые люди думают, что Facebook читает чтов настоящее время на странице. Это'нет. Это делает отдельный запрос к вашему серверу, используя тот же URL (из window.location.href), используя его 's Scraper, а Facebook Scraper не запускает JavaScript. Тот'Вот почему вы получаете {{page_title}} при нажатии на что-то вроде кнопки «Поделиться» на Facebook. Ваш контент должен быть сгенерирован сервером, поэтому, когда Facebook переходит по ссылке, он получает контент, который ему нужен, без необходимости использования JavaScript. Вы можете заняться рендерингом на стороне сервера несколькими способами.

Вы можете разрешить вашей серверной технологии визуализировать контент.Вы можете использовать подход PhantomJShttps://github.com/steeve/angular-seo.
 kapex16 дек. 2013 г., 16:43
Проверьтеprerender.io, он также основан на phantomjs, но, похоже, поддерживает несколько js-фреймворков и серверных платформ, таких как node, java или php.I '
 Michael Bromley02 июл. 2014 г., 10:44
мы описали простую реализацию графаПервое предложение (рендеринг на стороне сервера) в статье здесь:michaelbromley.co.uk/blog/171/...

Ваш ответ на вопрос