如何解决在Vue.js中动态更改按钮文本
如果值是true / false,我想更改按钮的文本。 这是我的代码:
<button
class="btn btn-primary table-button"
type="button"
data-toggle="collapse"
:data-target="`#collapse${row.num}`"
aria-expanded="false"
aria-controls="collapseExample"
@click="expanded = !expanded"
ref="tableButtonText">
{{ tableButtonText }}
</button>
data(){
return{
expanded:"",tableButtonText:""
}
},watch: {
expanded() {
if (this.expanded) {
this.tableButtonText = "Hide details";
} else if (!this.expanded) {
this.tableButtonText = "View details";
}
}
},
它确实更改了expanded
和tableButtonText
的值,但是屏幕上根本没有显示该按钮。似乎问题在于html无法呈现{{ tableButtonText }}
。似乎是什么问题,我该如何解决?
解决方法
expanded
字段在初始化期间应标记为布尔值(默认为false),而不是空字符串。另外,您缺少template
字段来包装HTML。
template:
`
<button
class="btn btn-primary table-button"
type="button"
data-toggle="collapse"
:data-target="`#collapse${row.num}`"
aria-expanded="false"
aria-controls="collapseExample"
@click="toggleView">
{{ text }}
</button>
`,data() {
return {
expanded: false,text: "View details."
}
},methods: {
toggleView() {
this.expanded = !this.expanded;
if (this.expanded) {
this.text = "Hide details.";
} else {
this.text = "View details.";
}
/*
OR ...
this.text = (this.expanded)
? "Hide details."
: "View details.";
*/
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。