model - Ember Data - 在模板中呈现一对多

标签 model ember.js handlebars.js one-to-many ember-data

我正在尝试返回所有赞助类型的列表,后跟可能属于该赞助类型的任何合作伙伴。我正在使用夹具适配器,这是我的数组:

var partnersArray = [
    { id: 1, sponsorship:[1], sponsorName: 'NYT', url: 'http://nyt.com/', image: 'images/sponsors/nyt.png'},
    { id: 1, sponsorship:[2], sponsorName: 'WSJ', url: 'http://wsj.com/', image: 'images/sponsors/wsj.png'},
    { id: 1, sponsorship:[2], sponsorName: 'CNN', url: 'http://cnn.com/', image: 'images/sponsors/cnn.png'},
];
var sponsorshipArray = [
    { id: 1, sponsorshipName:'Big Dog', sponsorshipPrice:'$25,000'},
    { id: 2, sponsorshipName:'Dog', sponsorshipPrice:'$10,000'},
    { id: 3, sponsorshipName:'Canine', sponsorshipPrice:'$5,000'},
    { id: 4, sponsorshipName:'Pup', sponsorshipPrice:'$2,000'},
    { id: 5, sponsorshipName:'Puppy', sponsorshipPrice:'$1,000'},
];

这些是我的模型:

App.Sponsorship = DS.Model.extend({
    sponsorshipName: DS.attr('string'),
    sponsorshipPrice: DS.attr('string'),
    partners: DS.hasMany('App.Partner')
});
App.Sponsorship.FIXTURES = sponsorshipArray;


App.Partner = DS.Model.extend({
    sponsorship: DS.attr('string'),
    sponsorName: DS.attr('string'),
    image: DS.attr('string'),
    url: DS.attr('string'),
    partnerSponsor: DS.belongsTo('App.Sponsorship'),
});
App.Partner.FIXTURES = partnersArray;

这是我的路线:

App.PartnersRoute = Ember.Route.extend({
    model: function() {
        return App.Sponsorship.find();
    },
    setupController: function(controller, model) {
        controller.set('model', model);
    }
});

这是我的 Handlebars

    <script type="text/x-handlebars" id="partners">
        <h2>Partners</h2>
        {{#each sponsorship in controller}}
            {{sponsorship.sponsorshipName}}<br />
            {{sponsorship.partners}}<br /><br />
        {{/each}}
    </script>

这是我的输出:

Big Dog
<DS.ManyArray:ember345>

Dog
<DS.ManyArray:ember346>

Canine
<DS.ManyArray:ember347>

Pup
<DS.ManyArray:ember348>

Puppy
<DS.ManyArray:ember349>

我似乎无法弄清楚我在这里缺少什么,并对其进行了一些简化,以便我可以看到应该在哪里添加代码......有什么建议吗?

最佳答案

您还需要 sponsorshipArray 中的 partners ids 数组。即:- 关系双方。

var sponsorshipArray = [
    { id: 1, sponsorshipName:'Big Dog', sponsorshipPrice:'$25,000', partners: [1, 2, ...]}
];

partnersArray 中,由于它是 belongsTo 关系,因此使用,

var partnersArray = [
    { id: 1, sponsorship:1, sponsorName: 'NYT', url: 'http://nyt.com/', image: 'images/sponsors/nyt.png'}
];

没有数组。

关于model - Ember Data - 在模板中呈现一对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583449/

相关文章:

zend-framework - 如何将模型与 Zend Framework 的 multidb 中的特定数据库适配器链接起来

css - EmberJS CSS 选项

javascript - 如何删除多行 HTML 排列中的空格?

javascript - 如何使用 Express、Handlebars 和 Consolidate 在 Node.js 中设置部分路径

ruby-on-rails - Rails 模型验证,它检查是否已经存在具有某些属性的对象

model-view-controller - 输入验证在MVC应用程序中应属于什么地方?

mysql - Google App Maker - 引用外部 MySql 数据库中的多个表

javascript - Ember JS 性能问题

ember.js - 如何在 github 页面上部署使用 ember-cli 开发的 Ember.js 应用程序?

javascript - #each 上的 Handlebars 解析错误