だから私はこのようなミックスインの作成に目を向けました
App.PaginationHelper = Em.Mixin.create({
pageSize: 10,
totalLines: 20,
rangeStart: 1,
rangeStop: function () {
var rangeStop = get(this, 'rangeStart') + get(this, 'pageSize') - 1;
totalLines = get(this, 'totalLines');
if (rangeStop < totalLines) {
return rangeStop;
}
return totalLines;
}.property(),
currentPage: function () {
return get(this, 'rangeStop') / get(this, 'pageSize');
}.property(),
totalPages: function () {
return Math.ceil(get(this, 'totalLines') / get(this, 'pageSize'));
}.property(),
[...]
このようにして、ビューの各インスタンス化を追加する一意の ID を持つコンテナー div を作成することで、それを再利用したり、単一のページで何度も再利用したりできるため、別のビューを作成しました。 .
したがって、新しい変数を使用して次の行を繰り返すことができますが、templateName を同じにしてテンプレートを再利用します。
var firstCaseOfPaginationViews = Em.View.create({
templateName: 'pagination'
[...]
});
firstCaseOfPaginationViews.appendTo('#transaction_pagination');
そして今、ミックスインは、ページネーションが必要なコントローラーに簡単に含めることができます。これが Ember での正しい方法であることを願っています。後でリファクタリングして再訪するまで、この方法を採用するようです。