代码之家  ›  专栏  ›  技术社区  ›  Robert

Vuejs过滤器不起作用

  •  1
  • Robert  · 技术社区  · 6 年前

    简单代码示例

    <!DOCTYPE html>
    <html>
    <head>
      <title>My first Vue app</title>
      <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
      <style>
      </style>
    </head>
    <body>
    <div id="app">
        <h1>Bitcoin Price Index</h1>
        <div v-for="currency in info">
            {{ currency.description }}
            <span v-html="currency.symbol"></span>{{ currency.rate_float || currencyToDeciaml }}
        </div>
    </div>
      <script>
          const app = new Vue({
              el   : '#app',
              data : {
                  info : null,
              },
              filters : {
                  currencyToDeciaml(val) {console.log(`foo`);
                      return Number(val).toFixed(2);
                  }
              },
              // Dom is ready so now load the data
              mounted() {
                axios.get(`https://api.coindesk.com/v1/bpi/currentprice.json`)
                    .then(response => this.info = response.data.bpi);
              },
          });
      </script>
    </body>
    </html>

    我试着用一个简单的过滤器 currencyToDeciaml 但它甚至没有被执行 foo 不显示。我好像想不出来。任何帮助都将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  4
  •   RDev    6 年前

    过滤器的正确语法如下:

    {{ currency.rate_float | currencyToDeciaml }}
    

    只有一根管子