Ember.JS绑定到时间?

Ember.JS绑定到时间?,ember.js,Ember.js,抱歉,如果这句话用词不正确,很难解释。基本上,我有一个项目列表,旁边有一个指定的日期。如果它们超过30分钟,那么它们就会变红。工作正常,但不是实时的。需要刷新它才能看到该项变为红色 {{#each callback in App.callbackController}} <tr> <td align="center" {{bindAttr style="callback.urgent"}}>{{callback.formatted_time}}&l

抱歉,如果这句话用词不正确,很难解释。基本上,我有一个项目列表,旁边有一个指定的日期。如果它们超过30分钟,那么它们就会变红。工作正常,但不是实时的。需要刷新它才能看到该项变为红色

{{#each callback in App.callbackController}}
    <tr>
        <td align="center" {{bindAttr style="callback.urgent"}}>{{callback.formatted_time}}</td>
    </tr>
{{/each}}

App.Callback = Ember.Object.extend({
    date_time: null,
    urgent: function()
    {
        current_time  = new Date().getTime();
        callback_time = new Date(this.get('date_time')).getTime();

        if(((callback_time - current_time) / 1000 / 60 * -1) > 30)
        {
            return 'color: #FFF; font-weight: bold; background: #'+Helpers.colours.red;
        } else {
            return 'color: #FFF; font-weight: bold; background: #'+Helpers.colours.green;
        }
    }.property('date_time')
});
{{{#App.callbackController}中的每个回调
{{callback.formatted_time}
{{/每个}}
App.Callback=Ember.Object.extend({
日期和时间:空,
紧急:职能()
{
当前时间=新日期().getTime();
callback_time=新日期(this.get('Date_time')).getTime();
如果((回调时间-当前时间)/1000/60*-1)>30)
{
返回'color:#FFF;font-weight:bold;background:#'+Helpers.colors.red;
}否则{
返回“color:#FFF;font-weight:bold;background:#”+Helpers.colors.green;
}
}.property(“日期和时间”)
});

是否仍要继续刷新紧急值?

您的computed属性只查看“date\u time”属性,在您的示例中,该属性看起来就像是创建项的时间

您可能应该在应用程序中的某个位置添加“date\u time\u now”属性(在有意义的地方),并将其添加到您的计算属性中。不确定ember是否有内置的“now”属性,但使用setTimeout()进行设置应该不会太难

编辑:


重读我的答案,意识到我没有尽可能地解释清楚。由于您的计算属性只查看日期\时间(该时间从不更改),因此将对其进行一次计算并在该时间之后进行缓存,因为默认情况下计算属性是缓存的。添加date\u time\u now属性并进行更新,每次date\u time\u now更改时都会强制重新计算。

您的计算属性只查看“date\u time”属性,在您的示例中,该属性看起来就像是创建项的时间

您可能应该在应用程序中的某个位置添加“date\u time\u now”属性(在有意义的地方),并将其添加到您的计算属性中。不确定ember是否有内置的“now”属性,但使用setTimeout()进行设置应该不会太难

编辑:

重读我的答案,意识到我没有尽可能地解释清楚。由于您的计算属性只查看日期\时间(该时间从不更改),因此将对其进行一次计算并在该时间之后进行缓存,因为默认情况下计算属性是缓存的。添加date\u time\u now属性并进行更新,每次date\u time\u now更改时都会强制重新计算。

Richard Livsey写道,基本上添加了一个应用程序范围内的时钟模型,该模型通过注入连接到所有控制器。然后,您的计算属性可以绑定到时钟属性,并在适当的时间被“唤醒”。

Richard Livsey写道,基本上添加了一个应用程序范围的时钟模型,该模型通过注入连接到所有控制器。然后,您的计算属性可以绑定到时钟属性,并在适当的时间被“唤醒”