javascript - vue class绑定与过滤器结合时报错
怪我咯
怪我咯 2017-04-11 12:33:21
[JavaScript讨论组]

我想让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)
怪我咯

不要用过滤器,用method,还有class前面要加":"冒号或者"v-bind:"

阿神

谢邀。 来晚了,不好意思。

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

  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最合适了。

大家讲道理

试试 class="{'big': item | isBig(item.a, item.b)}"

阿神

应该是v-bind:class或者:class

PHPz

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号