嗨,谢谢阅读.
我有一个角度的应用程序制作和ive在一个问题上偶然发现.设置如此
index.html-
<html ng-app="myApp"> ... <div ng-view></div> <div ng-include="'footer.html'"></div> ... </html>
我不会打扰我的路线很简单/家是显示/home/index.html等等…
/home/index.html(当您访问该网站时的默认视图)
<div class="responsive-block1"> <div class="tweet-me"> <h1> tweet me </h1> </div> <div class="twitter-Box"> <twitter-timeline></twitter-timeline> </div>
twitter时间线指令
directives.directive("twitterTimeline",function() { return { restrict: 'E',template: '<a class="twitter-timeline" href="https://twitter.com/NAME" data-widget-id="XXXXXXXXXXXXXX">Tweets by @NAME</a>',link: function(scope,element,attrs) { function run(){ (!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")); console.log('run script'); }; run(); } }; });
所以我刚刚创建了一个基本的twitter指令使用twitter的标签.但是当我将视图示例更改为/ blog,然后返回/ home时,twitter窗口小部件就不再呈现.
我也使用$anchorScroll,如果我跳到任何一个页面,这个小部件也消失.任何信息将非常感谢.
看到这篇文章:
https://dev.twitter.com/discussions/890
我认为你可以通过调用来获取窗口小部件来重新渲染
twttr.widgets.load().
如果发现这不起作用,那么您需要在控制器中将此代码包装到$timeout中:
controller('MyCtrl1',['$scope','$timeout',function ($scope,$timeout) { $timeout = twttr.widgets.load(); }])