Vue.js 在v-if块中设置值
如何使用v-if做两件事Vue.js 在v-if块中设置值,vue.js,vuejs2,Vue.js,Vuejs2,如何使用v-if做两件事 显示消息并 2) 将message.hassublocationoutput设置为true 因此,如果发生中断,则显示消息并将标志设置为truemessage.hassublocationoutput或将true传递给方法 <div v-if="!subLocation.outageTag.length - 1"> There is a problem </div> 有一个问题 您的设计中似乎存在一些
message.hassublocationoutput
设置为truemessage.hassublocationoutput
或将true传递给方法
<div v-if="!subLocation.outageTag.length - 1">
There is a problem
</div>
有一个问题
您的设计中似乎存在一些固有的缺陷,但您可以调用一种方法来计算是否显示并同时设置消息
HTML
正如安德烈所提到的,这是非常不明智的。在条件逻辑中有副作用会隐藏核心逻辑。相反,应该在数据更改时更新布尔条件,而不是相反
作为旁注,您可以使用V Sambor建议的计算属性来获得更好的性能,但这进一步隐藏了“错误”的实现,因为计算属性应该始终被缓存并流出,而您可以期望一个方法同时完成这两个任务,尽管在这种情况下是不可取的。您的设计中似乎存在一些固有的缺陷,但您可以调用一种方法来计算是否显示并同时设置消息
HTML
正如安德烈所提到的,这是非常不明智的。在条件逻辑中有副作用会隐藏核心逻辑。相反,应该在数据更改时更新布尔条件,而不是相反
作为旁注,您可以使用V Sambor建议的计算属性来获得更好的性能,但这进一步隐藏了“错误”的实现,因为计算属性应该始终被缓存并流出,而您可以期望一个方法同时完成这两个任务,即使在这种情况下,这是不可取的。您可以使用一种计算方法,因为它与@David L的答案几乎相同,只是这将缓存您的显示结果,直到某些相关变量更改其值
computed: {
display() {
if (this.subLocation.outageTag.length - 1) {
return false;
}
this.message.hasSublocationOutage = true;
return true;
}
}
然后在Html中,您可以执行以下操作:
<div v-if="display()">
There is a problem
</div>
有一个问题
您可以使用一种计算方法,因为它与@David L答案几乎相同,只不过这将缓存您的显示结果,直到某些相关变量更改其值
computed: {
display() {
if (this.subLocation.outageTag.length - 1) {
return false;
}
this.message.hasSublocationOutage = true;
return true;
}
}
然后在Html中,您可以执行以下操作:
<div v-if="display()">
There is a problem
</div>
有一个问题
我决不会建议这样的事情!我决不会建议这样的事!Vue用于视图。它不应该自己控制状态-将此功能放在脚本中;)Vue用于视图。它不应该自己控制状态-将此功能放在脚本中;)