首页 > 解决方案 > Ember - 在 Template.hbs 上显示 API 响应数据

问题描述

我对 Ember 非常陌生 - 如果有人能提供帮助,我将不胜感激。我需要显示网络请求响应:

这是我的port路线:

import Route from '@ember/routing/route';

export default Route.extend({
    model(params) {
        this.store.findRecord('node', params.node_id).then((res) => {
            var port = res.ports.arrangedContent.currentState;
            console.log(port);
            return port;      
        });
    }
});

这是端口模型:

import DS from 'ember-data';

var ports = {
    label: DS.attr('string'),
    mode: DS.attr('string'),
    node_name: DS.attr('string'),
    port_csid: DS.attr('string'),
    proxied_ssh_url: DS.attr('string'),
    web_terminal_url: DS.attr('string'),
    runtime_status: DS.belongsTo('nodeRuntimeStatus', {async: false}),
    parent: DS.belongsTo('node', {async: false}),
};

export default DS.Model.extend(ports);

下面是模板:

{{#each item in model}}
    <span>
       {{item.label}}
    </span>
{{/each}}

发生 API 调用,我可以 console.log 端口(数组),但不知道为什么我什么都没有显示。

标签: ember.js

解决方案


所以我发现这有什么问题。

首先,正如 Lux 提到的,return我的model().

第二个问题是each助手。我将模板从更改{{#each item in model}}{{#each model as |item|}}并解决了问题


推荐阅读