Ember.js 如何在ember中处理非模型数据

Ember.js 如何在ember中处理非模型数据,ember.js,tabular,Ember.js,Tabular,我想检索与模型相关的表格数据,并将其显示在表格中。 我不知道如何在余烬做到这一点。以下是我尝试过的: 我在API上添加了一个get操作,该操作返回带有数据的json 模型\路径\:id\相关\数据 我向模型中添加了自定义操作: allShares:modelAction'all_shares',{type:'GET'} 下面是我如何将其添加到路线模型中的: allShares:invoice.theni=>{return i.allShares} 现在我有了一个model.allShares,它

我想检索与模型相关的表格数据,并将其显示在表格中。 我不知道如何在余烬做到这一点。以下是我尝试过的:

我在API上添加了一个get操作,该操作返回带有数据的json

模型\路径\:id\相关\数据

我向模型中添加了自定义操作:

allShares:modelAction'all_shares',{type:'GET'}

下面是我如何将其添加到路线模型中的:

allShares:invoice.theni=>{return i.allShares}

现在我有了一个model.allShares,它应该包含数据。在network inspector中,我可以看到有一个对端点的查询,返回了我想要显示的JSON数据

视图中的以下代码完全为空:

{{each model.allShares as | elem index |}} {{elem}} {{index}} {{/每个}} 我现在可以在模型中使用调试器在inspector中看到一个大对象,但我不确定该如何处理它,甚至不确定它是什么类型的对象

现在如何在视图中显示数据

编辑:

{{log model.allShares}}为空 好的,我不知道日志是用于控制台的。 它用JSON中的数据显示对象。现在我应该知道如何在视图中使用数据


{model.allShares}返回[object object]

根据问题,您似乎正在尝试加载模型的关系。实现这一点的一个非常简单的方法是将这种关系包含在it自身的模型中

模型博客JSON:

{ 
    "id": 1,
    "name": "foo",
    "links": {
        "authors": "/api/blogs/1/authors"
    }
}
余烬模型博客:

export default DS.Model.extend({
    name: DS.attr('string'),
    authors: DS.hasMany('author'),
});
这是一个与作者有很多关系的博客模型的例子。当这被加载到ember数据中时,ember现在将使用该路由,而不是根据序列化程序配置逐个调用关系或使用ids请求

当尝试在模板中使用时,也将调用此函数

我通常发现这比在模型上使用自定义方法要好。我只有在绝对有机会的时候才会这么做。最好使用余烬数据,而不是反对它

资源:


什么是模型行动?老实说,我只是在路上手动取东西。如果您在模板中执行{{log model.allShares}}或仅执行{{model.allShares}}会发生什么情况?我在哪里可以找到有关在Ember中获取的信息?当您执行{log model}时,model的值是多少?log model为空,但您正在显示模型数据?这似乎不对。{{log model}}应该在控制台中显示所有内容,以便您可以进一步调试,并检查您的逻辑与数据的实际内容。但是,您可以使用fetch API本身不是ember的一部分,而是标准JS。这是正确的答案,尤其是在您可以控制API响应的情况下。如果您不这样做,请考虑使用诸如ember ajax或ember fetch服务之类的工具来请求特定的数据。但是,这应该只在绝对必要时使用,并且您应该尽一切努力在模型生态系统中保留关键数据。