2014-09-11 4 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'); 
    }); 
}); 
}); 

Fiddle здесь: 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> 
Смежные вопросы