Javascript vuejs if/else:检查元素是否存在else添加元素
我有一个Javascript vuejs if/else:检查元素是否存在else添加元素,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我有一个v-for类似于: <p> User Responses(s):</p> <template v-for="item in UserResponses"> <ol v-if="item.some_condition==item._is_true"> <li :name="item.id + '__UR'"> [[ item.some_variab
v-for
类似于:
<p> User Responses(s):</p>
<template v-for="item in UserResponses">
<ol v-if="item.some_condition==item._is_true">
<li :name="item.id + '__UR'"> [[ item.some_variable_to_render ] ]] </li>
</ol>
</template>
用户响应:
[[item.some\u variable\u to\u render]]
效果很好。然而,当某些条件为真时,我想说没有用户响应
,但是如果我添加v-else
,消息(没有用户响应)将在每个循环中打印,这当然不是所希望的。如何解决这个问题
为此,我想知道是否可以测试元素item.id+''uuuur''是否存在,如果不存在,是否可以添加一个文本为“无用户响应”的元素`
不过,我不确定这是正确的做法
编辑
只是重申一下:在v-for
之前使用v-if
不是一个选项,因为迭代的对象是一个加密的JSON,然后通过一些vuejs过滤器进行过滤,所以是的,这不是一个选项。注意boolVar
对应于包含bools的实际对象键
让model.flag=true
函数foo(val)=>{
model.flag=val
返回值
}
用户响应:
[[item.some\u variable\u to\u render]]
无用户响应请注意,boolVar
对应于包含bools的实际对象键
让model.flag=true
函数foo(val)=>{
model.flag=val
返回值
}
用户响应:
[[item.some\u variable\u to\u render]]
无用户响应您可以使用CSS实现此功能:
ol + .no-responses {
display: none;
}
下面有一个完整的示例,但是如果消息出现在
之后,则可以简单地隐藏消息。调整选择器以反映您的实际用例
我试图保持我的示例中的模板与原始代码完全相同,添加了相关消息和两个按钮用于演示
newvue({
el:“#应用程序”,
分隔符:['[',']]'],
数据(){
返回{
用户响应:[]
}
},
方法:{
加(){
this.UserResponses.push(
{some_condition:3,_is_true:3,id:3,要呈现的某个_变量:'A'},
{some_condition:3,_is_true:4,id:4,要呈现的某个_变量:'B'},
{some_condition:4,_is_true:4,id:5,some_变量_to_render:'C'},
{some_condition:5,_is_true:5,id:6,要呈现的某个_变量:'D'}
)
},
清楚(){
this.UserResponses.splice(0)
}
}
})
ol+。无响应{
显示:无;
}
用户响应:
[[item.some\u variable\u to\u render]]
无用户响应
增加价值
明确的价值观
您可以使用CSS实现此功能:
ol + .no-responses {
display: none;
}
下面有一个完整的示例,但是如果消息出现在
之后,则可以简单地隐藏消息。调整选择器以反映您的实际用例
我试图保持我的示例中的模板与原始代码完全相同,添加了相关消息和两个按钮用于演示
newvue({
el:“#应用程序”,
分隔符:['[',']]'],
数据(){
返回{
用户响应:[]
}
},
方法:{
加(){
this.UserResponses.push(
{some_condition:3,_is_true:3,id:3,要呈现的某个_变量:'A'},
{some_condition:3,_is_true:4,id:4,要呈现的某个_变量:'B'},
{some_condition:4,_is_true:4,id:5,some_变量_to_render:'C'},
{some_condition:5,_is_true:5,id:6,要呈现的某个_变量:'D'}
)
},
清楚(){
this.UserResponses.splice(0)
}
}
})
ol+。无响应{
显示:无;
}
用户响应:
[[item.some\u variable\u to\u render]]
无用户响应
增加价值
明确的价值观
在v-for
的同一
元素中使用v-if
?@kerbholz:根据文档,这不是推荐的方法。我甚至不知道该如何工作。你能展示一些代码吗?为什么不使用v-else?如果没有用户响应,就不应该有呈现的模板。你能简单地拥有吗使用v-if=“UserResponses.length”创建第二个模板“
?对,错过了,抱歉。同样,有一个例子说明了如何正确操作:将你的v-if
放在v-for
循环之外使用v-if
在你的v-for
上的同一
元素中?@kerbholz:根据文档,这不是推荐的方法。我甚至不知道那会怎样。你能展示一些代码吗?为什么不使用v-else呢?如果没有用户响应,应该没有呈现的模板。您可以简单地使用第二个模板v-if=“UserResponses.length”
?好的,没有找到,抱歉。同样,这里有一个如何正确操作的示例:将v-if
放在v-for
loopHmm之外。。我不能这样做,因为v-if
取决于项目的删除-我现在已经通过编辑帖子明确了这一点。所以你说列表中可能有项目,但项目有点空?嗯。。好。不是每个循环中都会出现h1
?这不是这个方法的问题吗?这就是为什么你有一个else语句对吗?如果是真的,做这个,否则做那个。所以不是两件事都发生了我添加了第三个版本保持列表完整嗯。。我不能这样做,因为v-if
取决于项是否正确