社交按钮和使用EmberJS更改属性

时间:2014-01-24 15:55:18

标签: javascript jquery ember.js

我正在尝试使用EmberJS在我的网站上有两个社交按钮(facebook& twitter)。我将这些按钮的URL绑定到属性url(例如)。

问题是属性url正在发生变化,按钮没有重新加载

我在EmberJS上对这篇文章进行了分拆:http://emberjs.com/guides/cookbook/helpers_and_components/creating_reusable_social_share_buttons/

更新到上一个EmberJS版本(1.3.1),并添加了“更改文本”按钮。尝试更改文本按钮的文本,您将看到按钮没有重新加载。

链接到jsbin:http://emberjs.jsbin.com/izOtIYi/1/edit(也可以观看控制台)

我认为这是因为Twitter正在搞乱Metamorph系统。我怎么能绕过这个?我确定有人在此面前这样做了。

最奇怪的是它与facebook一样适用于按钮。

谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于,当您加载twitter小部件时,它会解析<a>,然后用<iframe>替换它。因此,即使更新text属性,它也不会重新加载按钮。

解决问题的一种方法是在文本更改时重新渲染视图,这会导致删除iframe并添加新的标记。

当文本更改http://emberjs.jsbin.com/izOtIYi/8/edit

时,我修复了jsbin以更新按钮

我得到了将按钮重新渲染到组件中的逻辑,使其更具可重用性。

每当文本发生变化时,该按钮都会闪烁,因为每次文本更改时,它实际上会移除现有按钮并创建一个新按钮。