2013-07-11 42 views
3

我想返回所有的赞助类型之后,可能是根据该赞助类型的任何合作伙伴的名单。我现在用的夹具适配器,这里是我的数组:灰烬数据 - 撕心裂肺一对多模板

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); 
    } 
}); 

这是我的手把

<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> 

我似乎无法找出我在做什么在这里失踪,有所简化,以便我能看到我应该添加代码...什么建议吗?

回答

0

您还需要在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'} 
]; 

没有数组。

+0

这虽然听起来很合乎逻辑并没有为我工作。我收到错误“Can not read property'FIXTURES'of undefined”我正在使用车把并且正在输出: {{#each赞助在控制器中}} {{sponsorship.sponsorshipName}} {{sponsorship.partners}} { {/每}} 我应该使用不同的方法? – wfaye

+0

该错误看起来像'FIXTURES'没有定义。检查分配前的阵列是否存在。 –

+0

的事情是,如果我放弃{{sponsorship.partners}},然后我的灯具的工作就好了... ...它看来我错误地瞄准了这个相关数据。我试图搜索如何做到这一点,但找不到任何文件。 – wfaye