【问题标题】:EmberJS has the model data, but why does my template not show the model values properly?EmberJS 有模型数据,但为什么我的模板没有正确显示模型值?
【发布时间】:2015-07-15 06:42:14
【问题描述】:

我正在通过使用 Ember-CLI 并使用 DJango (DJango Rest Framework) 为小型应用程序提供动力来学习 EmberJS。

我正在尝试从我的 API 中显示一个简单的“花园”列表,但模板没有显示除“id”以外的任何内容:

我的路由器:

routes/gardens.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {        
    return this.store.findAll('garden');
  }
});

我的模特:

models/garden.js

import DS from 'ember-data';    

export default DS.Model.extend({

});

我的模板:

模板/gardens.hbs

<h2>Gardens</h2>

<ul>
    {{#each garden in model}}
        <li>
            {{garden.name}}
            {{garden.id}}
            {{garden.owner}}
        </li>
    {{else}}
        Nothing here!
    {{/each}}
</ul>

我最终看到的只是对象的“id”,其他都是空白的:

到目前为止,我发现 Garden API 响应实际上来自我的 Django API,正如 Chrome 开发人员控制台中所示:

我之前用ember-django-adapter 修复了一个根元素问题,我不再看到与此相关的错误。我的下一个预感是这个适配器导致了另一个问题,也许 DRFSerializer 在稍后的某个其他步骤中丢失了有效负载。

我的数据去哪儿了?

更新

对数据进行硬编码就可以了。我非常确定我在序列化过程中遗漏了一些东西:

import Ember from 'ember';

export default Ember.Route.extend({
    model: function() {        
        return [
            {
                id : 0,
                name: "Foo",
                owner: "Bar"
            }
        ]
    }
});

模板适用于硬编码模型:

更新 2

似乎我找到了数据的去向,我只是不确定它为什么会发生,某种标准化,但整个有效负载都被忽略了。只保留身份证。

在 ember-data/lib/system/store/serializer-response.js 中,_normalizeSerializerPayload 正在将负载转换为 Json API 文档。

【问题讨论】:

    标签: javascript python django ember.js


    【解决方案1】:

    想通了,男孩,我觉得自己很笨吗。

    我没有意识到 EmberJS 对模型很严格,我必须正确明确地定义模型:

    models/garden.js

    import DS from 'ember-data';
    
    export default DS.Model.extend({
        name: DS.attr('string'),
        owner:  DS.attr('string'),
    });
    

    上面的最后一个屏幕截图来自 Ember-Data 内部,它复制了模型中定义的“属性”。我的分数为零,这让我相信应该归咎于模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多