Vue.js v-attr ="表达"

时间:2015-09-04 14:14:22

标签: javascript vue.js

使用vue.js,如果项目的数量小于1,我尝试禁用按钮。

<div v-repeat = "item: itemsList">
<button v-attr="disabled: {{item.qty}} < 1"> Click </button>
......

它不起作用,根本没有显示任何内容。但是,当我放置一个正常的表达式时:

<div v-repeat = "item: itemsList">
<button v-attr="disabled: 0 < 1"> Click </button>
......

它正常运作!

任何人都能解释为什么我不能在我的情况下使用该物业吗?有没有办法做到这一点?

3 个答案:

答案 0 :(得分:0)

试试这样:

<button v-attr="disabled: item.qty<1"> Click</button>

演示小提琴:

http://jsfiddle.net/yMv7y/721/

答案 1 :(得分:0)

您的代码无效,因为laravel与{{}}语法冲突,但因为在v-attr指令中您不需要该值的句柄语法,因为它将直接评估表达式。

如果您使用laravel并且需要在括号内显示某些内容,请使用@ {{}}。 &#39; @&#39;告诉刀片服务器忽略该表达式,以便vue实例可以处理它。

答案 2 :(得分:0)

为了对Ivan的答案进行补充,语法已经改变,所以我相应地更新了小提琴:http://jsfiddle.net/yMv7y/1734/

<div id="demo" v-for="item in itemlist">
    <button :disabled="item.qty < 1"> Click</button>
</div>

[编辑]现在适用于Vue 2.0 +

<div id="demo">
   <button v-for="item in itemlist" :disabled="item.qty < 1"> Click</button>
</div>    

http://jsfiddle.net/yMv7y/2022/