【发布时间】:2020-04-20 16:08:21
【问题描述】:
出于某种原因(不要问我为什么),我不得不通过模板重置 VueJS 中的变量。所以,在 vuejs 中,我有这个:
const someApp = new Vue({
delimiters: ['[[', ']]'],
el: '#some-app',
data: {
flag: 0,
},
methods: {
changeFlag(val) {
if (val === 0){//dumb stuff
this.flag=0;
}
else if (val ===1){
this.flag=1;
}
return this.flag;
},
...
在我的模板中我有这个:
<div :data-flag="changeFlag(0)"></div>
<p class="card-text"> User story(s):</p>
<template v-for="item in UserStories">
<ol v-if="(some_complex_logic_here_via_filters )">
<li :name="post.id + '__UA'" :data-flag="changeFlag(1)"> [[ item.something] ]] </li>
</ol>
</template>
<p v-if="(flag === 0)">No user stories found.</p>
这个想法是通过执行changeFlag(0) 和changeFlag(1) 我可以稍后控制<p> 标签。但是,由于某种原因,当我执行此操作时,浏览器似乎挂起。当我删除 for 循环时,一切似乎都正常 - 没有用户搅拌的 <p> 标记正确呈现。错误似乎是当我使用changeFlag(1) 重置时。
我对 VueJS 很陌生,我想知道这是否有一些使用错误......
【问题讨论】:
-
为什么不直接更改
flag的值而不使用changeFlag()方法。这似乎更容易...... -
@MarsNebulaSoup:没有方法我该怎么做?你能给我看一些代码吗?
-
someApp.flag = val -
@MarsNebulaSoup:我是否在某个 html 标记中执行此操作?
-
另外,为什么方法 approac 不起作用?这很奇怪。