解释我的确切用例:所以我有一个带有“created_at”字段的新闻模型。使用 ArrayController 显示所有日期可以正常工作并且符合预期。但我现在想做的是使用http://pragmaticly.github.io/smart-time-ago/(或http://timeago.yarp.com/)将这些日期转换为模糊时间。$('.timeago').timeago('refresh');
这里的问题是,一旦加载并显示了时间戳,我就需要调用它。只要我在 ember-app 中导航,这似乎就可以正常工作。但是当我刷新一个站点时,插件不知何故无法转换它。所以我想该命令不会在正确的时间从应用程序中调用。我现在通过以下两种方式做到这一点:在视图中:
didInsertElement: function(){
$('body').timeago('refresh');
}
在控制器中:
updateFuzzyTime: function(){
$('body').timeago('refresh');
}.observes('content')
当我在任何一个地方将setTimeout()
命令设置为 1000ms 时,它显然确实有效。
那么,当模型完全加载并在刷新时显示时,如何让 ember 执行该命令?(在另一个项目中我遇到了类似的问题,在那里我使用了rerender()
确实有效的命令,但在这个用例中我根本无法做到这一点)
编辑:也只是在这里发布。该插件查看时间元素的日期时间属性。所以我的 hbs 代码如下所示:
<time class="timeago" {{bindAttr datetime="date"}}>{{date}}</time>
而且我想大多数钩子不起作用的原因是因为即使渲染了 DOM 我想 Ember 还没有更新属性。