2014-09-11 35 views
0

我想排序嵌套数组。为了排序AFAIK,我们需要使用ArrayController。EmberJS:嵌套ArrayControllers排序问题

我有一个数组,像这样:

[{ 
    id : 1, 
    voucherno: 1, 
    details : [{id : 3, srno : 3}, {id :2,srno : 2}, {id : 1, srno : 1}] 
}, 
{ 
    id : 2, 
    voucherno: 2, 
    details : [{id : 6, srno : 3}, {id : 5, srno : 1}, {id: 4, srno : 2}] 
}] 

我想基于srno细节对数据进行排序。在尝试了各种不同的东西之后,这就是我所想到的。但它不起作用。

我的型号是:

App.Sale = DS.Model.extend({ 
    voucherno : DS.attr('number'), 
    details : DS.hasMany('Detail',{ async: true }) 
}); 

App.Detail = DS.Model.extend({ 
    srno : DS.attr('number') 
}); 

路线:

App.Router.map(function() { 
this.resource('sales', { 
    path: '/' 
}, function() { 
    this.resource('sale', { 
     path: "/:sale_id" 
    }, function() { 
     this.resource('details'); 
    }); 
}); 
}); 

小提琴是在这里:JSFiddle

PL的帮助下,我看到周围这一切的答案,但他们都不工作为了我。

回答

2

更正了你jsfiddle。相反插座使用{{render}}其中也设置特定的控制器。它不是排序问题。

http://jsfiddle.net/11b78Lpz/3/

基本取代{{outlet}}这涉及到销售模板以下。

<script type="text/x-handlebars" data-template-name="sales"> 
    <div class="container-fluid"> 
    <div >Voucher No</div> 
     <div class="row"> 
     {{#each model}} 
      <div class="row col-md-offset-2 col-md-4 ">{{voucherno}}</div> 
      {{render details details}} 
     {{/each}} 
     </div> 
    </div> 
</script>