为 Angular 2 嵌入 Twitter [英] Twitter embedded for Angular 2

查看:14
本文介绍了为 Angular 2 嵌入 Twitter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将 Twitter 时间线嵌入到我的 Angular 2 应用中.我遵循了本教程 https://publish.twitter.com然后我有了这个

<a class="twitter-timeline" href="https://twitter.com/TwitterDev">TwitterDev 的推文</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

我将一个标签放入模板并将脚本标签放入 index.html.这是一个例子.

<头><meta charset="utf-8"><title>Angular 2 应用程序 |ng2-webpack<link rel="icon" type="image/x-icon" href="/img/favicon.ico"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css"><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><base href="/"><身体><我的应用程序><div class="loading-container"><div class="加载"></div><div id="加载文本">加载</div><a class="twitter-timeline" href="https://twitter.com/TwitterDev">TwitterDev 的推文</a>

</我的应用程序></html>

但它只显示了 a 标签,没有时间线.请帮帮我!

解决方案

您应该在加载模板后运行 twitter 小部件脚本.

我是这样做的:

导出类 SectionSocialComponent 实现 AfterViewInit {构造函数(){}ngAfterViewInit () {!function(d,s,id){var js:任何,fjs=d.getElementsByTagName(s)[0],p='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);}}(文档,脚本",twitter-wjs");}}

我的 .html 文件只包含这个:

<a class="twitter-timeline" href="https://twitter.com/TwitterDev">TwitterDev 的推文</a>

也许这不是最优雅的解决方案,但对我有用.

I tried to embed Twitter timeline to my Angular 2 app. I followed this tutorial https://publish.twitter.com then I had this

<a class="twitter-timeline" href="https://twitter.com/TwitterDev">Tweets by TwitterDev</a> <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

I put a tag into template and put script tag into index.html. This is an example.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Angular 2 App | ng2-webpack</title>
    <link rel="icon" type="image/x-icon" href="/img/favicon.ico">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
    <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
    <base href="/">
  </head>
  <body>
    <my-app>
      <div class="loading-container">
        <div class="loading"></div>
        <div id="loading-text">loading</div>
        <a class="twitter-timeline" href="https://twitter.com/TwitterDev">Tweets by TwitterDev</a>
      </div>
    </my-app>
  </body>
</html>

But it only showed the a tag, no timeline. Please help me !

解决方案

You should run the twitter widget script after your template was loaded.

I did this:

export class SectionSocialComponent implements AfterViewInit { 
    constructor() {}

    ngAfterViewInit () {
            !function(d,s,id){
                var js: any,
                    fjs=d.getElementsByTagName(s)[0],
                    p='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");
    }
}

And my .html file only contains this:

<a class="twitter-timeline" href="https://twitter.com/TwitterDev">Tweets by TwitterDev</a>

Maybe this is not the most elegant solution, but worked for me.

这篇关于为 Angular 2 嵌入 Twitter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆