Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js &引用;“成功”;或;“完成”;余烬数据采集检索方法_Ember.js_Ember Data - Fatal编程技术网

Ember.js &引用;“成功”;或;“完成”;余烬数据采集检索方法

Ember.js &引用;“成功”;或;“完成”;余烬数据采集检索方法,ember.js,ember-data,Ember.js,Ember Data,在我的应用程序中,我有一个1到M的关系模型,如下所示: Social.Message = DS.Model.extend({ created: DS.attr("date"), text: DS.attr("string"), metrics: DS.hasMany("Social.Metric"), }); Social.Metric = DS.Model.extend({ label: DS.attr('string'), value: DS.att

在我的应用程序中,我有一个1到M的关系模型,如下所示:

Social.Message = DS.Model.extend({
    created: DS.attr("date"),
    text: DS.attr("string"),
    metrics: DS.hasMany("Social.Metric"),
});

Social.Metric = DS.Model.extend({
    label: DS.attr('string'),
    value: DS.attr('number'),
    message: DS.belongsTo('Social.Message'),
});
当Ember Data调用以检索消息时,数据包如下所示:

[
    {
        "id": 13, 
        "created": "2013-05-20T21:35:56Z"
        "text": "You got to let the roots grow deep, and stop worrying about the leaves", 
        "metrics": [
            "reach-13", 
            "click-13"
        ]
    }
]
[
    {
        id: "reach-13",
        value: 3,
        label: "reached"
    },
    {
        id: "reply-13",
        value: 2,
        label: "reply"
    },
]
我们使用侧加载来检索指标,其返回数据如下所示:

[
    {
        "id": 13, 
        "created": "2013-05-20T21:35:56Z"
        "text": "You got to let the roots grow deep, and stop worrying about the leaves", 
        "metrics": [
            "reach-13", 
            "click-13"
        ]
    }
]
[
    {
        id: "reach-13",
        value: 3,
        label: "reached"
    },
    {
        id: "reply-13",
        value: 2,
        label: "reply"
    },
]
这个过程非常有效,没有任何缺陷。但是,由于可能有大量消息,每个消息都有一组度量,因此显示度量的时间可能为3秒或更长。在每条消息上,我想添加一个加载微调器来代替度量值,然后在该消息的度量值返回后将其删除。我已经添加了微调器,但是在度量集合返回到客户机后,我不知道如何删除它

当整个数据集合返回到客户端时,Ember在控制器上是否有触发的事件或方法?

我知道这一点,但我不关心单个模型,我在寻找更高的东西,针对整个指标集(针对每条消息)

这里有一个关于现在发生的事情的快速视频。

每个
消息
度量
模型实例都有自己的模型生命周期挂钩。此外,
DS.ManyArray
s实现了
DS.hasnomy
关系,也有一个
isLoaded
属性(一个用于整个数组)

因此,关键是在你的车把模板。在
isLoaded
条件中包装度量,而不是整个消息。在信息的上下文中:

<div>{{created}}</div>
<div>{{text}}</div>
<div>
  {{#if metrics.isLoaded}}
    {{#each metric in metrics}}
      {{! Display metric here. }}
    {{/each}}
  {{else}}
    <img src='spinner.gif'>
  {{/if}}
</div>
{{created}
{{text}}
{{{if metrics.isLoaded}
{{{#度量中的每个度量}
{{!此处显示度量。}
{{/每个}}
{{else}
{{/if}
ManyArray
s还有一个
didLoad
事件,当
isLoaded
设置为true时会触发该事件,但是对于您所描述的内容,您不应该需要它