Filter


Filter können an zwei Stellen verwendet werden: doppelte Klammerinterpolation und v-bind Ausdrücke (letzteres wird ab 2.1.0 unterstützt). Filter sollten am Ende des JavaScript-Ausdrucks hinzugefügt werden, angezeigt durch das „Pipe“-Symbol:

<!-- 在双花括号中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

Sie können lokale Filter in den Optionen einer Komponente definieren:

filters: {
  capitalize: function (value) {
    if (!value) return ''
    value = value.toString()
    return value.charAt(0).toUpperCase() + value.slice(1)
  }
}

oder beim Erstellen von Vue Definieren Sie den Filter global vor der Instanz:

Vue.filter('capitalize', function (value) {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})
new Vue({
  // ...
})

Wenn der globale Filter und der lokale Filter denselben Namen haben, wird der lokale Filter verwendet.

Das folgende Beispiel verwendet den capitalize-Filter:

2.gif

Die Filterfunktion erhält immer den Wert des Ausdrucks (das Ergebnis der vorherigen Operationskette). ) als erster Parameter. Im obigen Beispiel erhält die Filterfunktion capitalize den Wert von message als ersten Parameter.

Filter können verkettet werden:

{{ message | filterA | filterB }}

In diesem Beispiel ist filterA als Filterfunktion definiert, die ein einzelnes Argument empfängt, und der Wert des Ausdrucks message wird als Argument übergeben in Funktion. Rufen Sie dann die Filterfunktion filterB auf, die ebenfalls für den Empfang eines einzelnen Parameters definiert ist, und übergeben Sie das Ergebnis von filterA an filterB.

Filter sind JavaScript-Funktionen und können daher Parameter empfangen:

{{ message | filterA('arg1', arg2) }}

Hier ist filterA als Filterfunktion definiert, die drei Parameter empfängt. Der Wert von message wird als erster Parameter verwendet, die gewöhnliche Zeichenfolge 'arg1' wird als zweiter Parameter verwendet und der Wert des Ausdrucks arg2 wird als dritter Parameter verwendet.