javascript - vue class绑定与过滤器结合时报错

 暗影HK4164286 发布于 2022-11-10 01:20

我想让a+b>5的时候,给p标签一个big类,我使用了过滤器,但是报错了.
请问这是为什么,有什么其他解决方法吗?

[Vue warn]: Invalid expression. Generated function body:  {'big':scope.item
warn @ vue.js:1023
3vue.js:1023 [Vue warn]: Failed to resolve filter: isBig



    
    
    
    



{{item.name}}

5 个回答
  • 有一个规则, 所有属性都必须加 v-bind

    2022-11-12 01:44 回答
  • 应该是v-bind:class或者:class

    2022-11-12 01:44 回答
  • 试试 class="{'big': item | isBig(item.a, item.b)}"

    2022-11-12 01:44 回答
  • 谢邀。 来晚了,不好意思。

    首先你的写法有两个问题:

    1. class的绑定,你要告诉vue你要绑定的属性。:class:{}v-bind:class:{}

    2. filter语法问题。 当你传多个参数时应该这样: {'big': item | isBig(item.a, item.b)}。vue 的filter是函数,所以可以这样使用。不过注意形参的使用, 这个过滤器中, item为第一个参数, item.a 为第二个参数, item.b 为第三个参数。

    建议多看文档:vue filter官方文档


    最后说下, 关于filter你使用的场景不对。vue中的过滤器与指令都是全局注册的,所以类似于一种公共方法的作用。你只是单独一个模块使用,而且你也只是为了判断一个class,所以就像上面那个哥们说的应该用methods最合适了。

    2022-11-12 01:44 回答
  • 不要用过滤器,用method,还有class前面要加":"冒号或者"v-bind:"

    2022-11-12 01:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有