Javascript VueJS:检查属性是否具有来自其他属性的值
我目前正在学习Javascript(VueJS),并更新了我现有的一个Laravel应用程序。到目前为止效果相当不错。但有一点我还是遇到了麻烦:我有两个prop(例如prop1和prop2),如果prop1中的值也出现在prop2中,意味着该值在prop2中的某个位置,我希望以不同的方式呈现表中的条目。请看以下示例代码:Javascript VueJS:检查属性是否具有来自其他属性的值,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我目前正在学习Javascript(VueJS),并更新了我现有的一个Laravel应用程序。到目前为止效果相当不错。但有一点我还是遇到了麻烦:我有两个prop(例如prop1和prop2),如果prop1中的值也出现在prop2中,意味着该值在prop2中的某个位置,我希望以不同的方式呈现表中的条目。请看以下示例代码: <tr v-for="s in list"> <td v-if="s.value1 is also present in prop2"><
<tr v-for="s in list">
<td v-if="s.value1 is also present in prop2"><i class="fa fa-circle text-danger"></i></td>
<td v-else><i class="fa fa-circle text-success"></i></td>
<td>{{ s.value1 }}</td>
<td>{{ s.value2 }}</td>
</tr>
{{s.value1}}
{{s.value2}}
有没有一种简洁的“vue-like”方法可以做到这一点?
<td v-if="s.value1 === s.value2">
您可以使用.some运算符检查另一个数组中是否存在值:
// Will return true if any items matches s.value1
prop2.some(function (item) {
return item === s.value1
});
您可以将其作为方法或计算属性添加到Vue实例中,例如:
var app = new Vue({
el: "#vue",
data: {
prop2: []
},
methods: {
checkProp2: function(val) {
return prop2.some(function (item) {
return item === val;
})
}
}
})
然后,您可以执行以下操作:
<tr v-for="s in list">
<td v-if="checkProp2(s.value1)"><i class="fa fa-circle text-danger"></i></td>
<td v-else><i class="fa fa-circle text-success"></i></td>
<td>{{ s.value1 }}</td>
<td>{{ s.value2 }}</td>
</tr>
{{s.value1}}
{{s.value2}}
上面写着“也在场”,所以我想相等的比较是不够的,那么OP应该解释“也在场”的确切含义。谢谢。作品很棒:)