无法访问模板中的模型存储

时间:2017-02-18 00:29:20

标签: laravel ember.js handlebars.js ember-data ember-cli

我的智慧结束了这一点,我知道我可能只是错过了一些非常明显的东西。试图与Ember和Lavarel合作。 Lavarel正在正确发送数据,但我似乎无法在存储后访问它。我已经尝试了很多不同的东西来使这个工作,但它总是显得空白,好像在model.car(或汽车,或模型,等等)没有任何东西。如果有人能指出我正确的方向,会有所帮助。我已经看到了一些类似的问题,但似乎都没有解决我的问题。

Model Data

Data Sent from Lavarel

cars.js(路线)

    import Ember from 'ember';

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

car.js(型号)

import DS from 'ember-data';

export default DS.Model.extend({
  make: DS.attr('string'),
  model: DS.attr('string')
});

cars.js(控制器)

import Ember from 'ember';

export default Ember.Controller.extend({
    session: Ember.inject.service()

});

application.js(序列化程序)

import DS from 'ember-data';

export default DS.RESTSerializer.extend({
    normalizeSingleResponse(store, primaryModelClass, payload, id, requestType) {
    let typeKey = primaryModelClass.modelName;
    let ret = {};
    ret[typeKey] = payload;
    return this._normalizeResponse(store, primaryModelClass, ret, id, requestType, true);
},
normalizeArrayResponse(store, primaryModelClass, payload, id, requestType) {
    let typeKey = primaryModelClass.modelName;
    let ret = {};
    ret[typeKey] = payload;
    console.log(ret);
    return this._normalizeResponse(store, primaryModelClass, ret, id, requestType, false);
}
});

cars.hbs(模板)

{{outlet}}
<ul id="todo-list">
        {{#each model.car}}
        <li>
            <input type="checkbox" class="toggle">
            <label>{{make}}</label><button class="destroy"> delete item</button>
        </li>
    {{/each}}

</ul>

1 个答案:

答案 0 :(得分:0)

如果您将车型装入商店,那么您的一切都是正确的。如你所说,你错过了一些非常明显的东西ie。而不是model.car,您可以使用model进行访问。 对于下一个调试这个我鼓励你使用像{{log 'model' model}}这样的日志助手,这将在控制台中打印模型对象。您可以浏览ember template development helper ember指南

<ul id="todo-list">
        {{#each model as |car|}}
        <li>
            <input type="checkbox" class="toggle">
            <label>{{car.make}}</label><button class="destroy"> delete item</button>
        </li>
    {{/each}}
</ul>
{{outlet}}