0

Angular スコープ内にタグとアカウントの 2 つの配列があります。各配列内のアイテムは同じ構造を持ちます。また、アカウントとタグ配列の両方からアイテムを同じ方法で表示する 1 つのテンプレートもあります。ただし、コレクションにはタグとアカウントの名前が異なるため、次のように使用する必要があります (Jade):

  div(ng-switch on="activeEntriesFilter")
    div(ng-switch-when="accounts")
      ul.items-list
        li.item-row(ng-repeat="account in accounts", ng-click="setActiveGroupFilterItem(account)")
          span.title {{account.value.title}}
    div(ng-switch-when="tags")
      ul.items-list
        li.item-row(ng-repeat="tag in tags", ng-click="setActiveGroupFilterItem(tag)")
          span.title {{tag.value.title}}

ご覧のとおり、リストは同じ構造であるため、コードが重複しています。代わりにここで見たいのは、項目などの一時変数にアカウントまたはタグ配列を割り当て、リストの作成時にその一時変数を処理するようなものです。

どうすれば最も美しく論理的な方法でそれを行うことができますか?

4

1 に答える 1

0

おそらくこのようなもの:

div(ng-switch on="activeEntriesFilter")
    ul.items-list
        li.item-row(ng-repeat="entry in (activeEntriesFilter == 'accounts' && accounts || tags)", ng-click="setActiveGroupFilterItem(entry)")
            span.title {{entry.value.title}}

彼らは 1.2 で三項句を導入する予定ですが、今のところこれを使用できると思います。

于 2013-06-13T15:16:39.640 に答える