javascript - Vue.js - 在 v-for 中使用过滤器

标签 javascript vue.js vuejs2 vue-component v-for

我有一个简单的 Vue 过滤器,它将数组的长度限制为 n 个元素。像这样使用效果很好:

{{ array | limitArray(2) }}

现在我想在 v-for 中使用它循环,像这样:

<li v-for="item in items | limitArray(3)">...</li>

但这会引发错误。如何在 v-for 中使用过滤器?

编辑:可能不重要,但有问题的过滤器:

Vue.filter('limitArray', function (arr, length = 3) {
    if (arr && arr.length) {
        if (length == -1) {
            return arr;
        }
        if (length > arr.length) {
            return arr;
        }

        return arr.slice(0, length);
    }

    return null;
});

最佳答案

您必须将过滤器作为方法调用:

<li v-for="item in $options.filters.limitArray(items, 3)">

但是在 Vue 3 中删除了过滤器。改用方法。

关于javascript - Vue.js - 在 v-for 中使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53639575/

相关文章:

javascript - side el 的嵌套 id 中的 Backbone 渲染模板

javascript - Google map - 如何在标记数组中定位标记?

vue.js - vuex mapGetters 是否值得使用?

javascript - Vuex:跳过 Action 并直接从 Component 提交 Mutation

javascript - Vue JS无法将方法返回的数据显示到DOM

javascript - 如何使用 HTML 和 Javascript 创建动态的每周计划?

javascript - 不显示鼠标时删除元素的悬停状态

javascript - 多个 td 元素上的 Vue 单击事件第一个和最后一个异常

vue.js - Vue-router beforeEach 在使用 next() 时陷入无限循环

javascript - 将自制库导入到vue项目中