vendredi 21 août 2015

Suggestion to refactor redundant component template

I've got a paginated-links component. The component template looks like:

{{#if model}}
  <ul>
    <li>{{#link-to linkTo model.id (query-params page=pageMeta.first) class="button -blue -mini"}}First{{/link-to}}</li>
    <li>{{#link-to linkTo model.id (query-params page=pageMeta.prev) class="button -blue -mini"}}Prev{{/link-to}}</li>
    <li>{{#link-to linkTo model.id (query-params page=pageMeta.next) class="button -blue -mini"}}Next{{/link-to}}</li>
    <li>{{#link-to linkTo model.id (query-params page=pageMeta.last) class="button -blue -mini"}}Last{{/link-to}}</li>
    <li class="info">Page {{pageMeta.number}} / {{pageMeta.last}}</li>
  </ul>
{{else}}
  <ul>
    <li>{{#link-to linkTo (query-params page=pageMeta.first) class="button -blue -mini"}}First{{/link-to}}</li>
    <li>{{#link-to linkTo (query-params page=pageMeta.prev) class="button -blue -mini"}}Prev{{/link-to}}</li>
    <li>{{#link-to linkTo (query-params page=pageMeta.next) class="button -blue -mini"}}Next{{/link-to}}</li>
    <li>{{#link-to linkTo (query-params page=pageMeta.last) class="button -blue -mini"}}Last{{/link-to}}</li>
    <li class="info">Page {{pageMeta.number}} / {{pageMeta.last}}</li>
  </ul>
{{/if}}

Sometimes though. The model isn't always present. A route’s template could have:

{{paginated-links linkTo="articles.show" model=model.article pageMeta=model.comments.meta.page}}

Or:

{{paginated-links linkTo=“users.index" pageMeta=user.meta.page}}

The component's template looks a bit redundant. Any suggestions on how I can refactor this?




Aucun commentaire:

Enregistrer un commentaire