0

angular のフィルターはチュートリアルの例では問題なく機能しますが、スニペットの代わりに日付フィルターを使用してリリース日を追加したいとしましょう。したがって、コードは次のようになります。

  <ul class="phones">
    <li ng-repeat="phone in phones | filter:query">
      {{phone.name}}
      <p>{{phone.releaseDate | date:'medium'}}</p>
    </li>
  </ul>

電話オブジェクトの基になるデータではなく、DOM 値に基づいてフィルター処理する方法はありますか? フィルター処理された releaseDate は、ユーザーが実際のデータよりもはるかに簡単に検索できます。

4

2 に答える 2

1

フィルターは、特定の命名規則と形式を持つサービスです。

angularサービスでは、データと状態を担当します(さらに、DOM操作にはほとんど使用されません)

したがって、フィルタはモデル データに対してのみ機能します。確かに、DOM を操作する独自のフィルターを作成できますが (Angular でのディレクティブの責任)、これは角度のある方法ではありません。

したがって、問題を解決するには、dom ではなくモデル データを操作する必要があります。

これを行う方法についてプランカーを作成しました。

http://plnkr.co/edit/uol9GQjUsEIN42JzLIC9?p=preview

于 2013-10-31T14:18:54.780 に答える
0

私に新しいことを教えてくれて、致命的なエラーを指摘してくれたチャンデルマニさん。

OPの場合、答えはNOです。(もう一度読んだ後、私はあなたの質問を理解しました)

angularはそれ自身のデータでのみ「機能」し、そのすべてのデータを計算した後、それをレンダリングしてDOMを作成します。非常に間違った回避策になります。

angularを使用することの全体的なポイントは、MVCパターンを使用していることを覚えておいてください...

于 2013-10-31T13:45:44.510 に答える