单击 Vue.js 组件后星星淡出
Stars fade out after click in Vue.js component
我想在Vue.js中制作一个星级组件,现在的问题是我点击星星后,它会淡出,然后才能显示最终结果。下面是 JSFiddle link:
https://jsfiddle.net/L6L34ybr/5/
这与我大部分复制代码的效果不同:
http://codepen.io/nouveller/pen/qOxKBJ
我想这与rating
属性有关。
现在我已经绑定 class 内联 :class="{selected: ((value >= rating && value != null))}
。
但我想将它与 :class="selected: someFunction(rating)"
这样的对象绑定
然后将 someFunction(rating)
写入计算的 属性 或其他不在 html 中的地方。有办法做到吗?
而不是
@click="setRate(rating)"
像这样定义您的点击事件:
@click.prevent="setRate(rating)"
这将从问题的原因中停止点击事件,即它触发两次,一次针对标签,一次针对输入。
关于你的第二个问题,你可以像这样在组件的 methods
对象中添加你的 someFunction()
:
methods: {
someFunction: function (value, rating) {
return value >= rating && value != null;
}
}
然后您可以在您的标记中调用它,如下所示:
<label :class="{selected: someFunction(value, rating)}">
我想在Vue.js中制作一个星级组件,现在的问题是我点击星星后,它会淡出,然后才能显示最终结果。下面是 JSFiddle link:
https://jsfiddle.net/L6L34ybr/5/
这与我大部分复制代码的效果不同:
http://codepen.io/nouveller/pen/qOxKBJ
我想这与rating
属性有关。
现在我已经绑定 class 内联 :class="{selected: ((value >= rating && value != null))}
。
但我想将它与 :class="selected: someFunction(rating)"
这样的对象绑定
然后将 someFunction(rating)
写入计算的 属性 或其他不在 html 中的地方。有办法做到吗?
而不是
@click="setRate(rating)"
像这样定义您的点击事件:
@click.prevent="setRate(rating)"
这将从问题的原因中停止点击事件,即它触发两次,一次针对标签,一次针对输入。
关于你的第二个问题,你可以像这样在组件的 methods
对象中添加你的 someFunction()
:
methods: {
someFunction: function (value, rating) {
return value >= rating && value != null;
}
}
然后您可以在您的标记中调用它,如下所示:
<label :class="{selected: someFunction(value, rating)}">