【问题标题】:How do I change the html on the page using vue.js?如何使用 vue.js 更改页面上的 html?
【发布时间】:2019-07-29 12:13:51
【问题描述】:

我有一个包含大量 html 的 div。我需要将该 div 的内容完全更改为另一组完全不同的 html。我还必须使用 Vue.js 完成所有这些,并且无需刷新页面。

我尝试在另一个页面上制作 div,但问题是数据丢失了,所以我必须在不改变页面的情况下这样做。

<div id='questions'>
  <div class="card card-1">
    <div class="card-header">
      <strong> [[ topic ]] | </strong> [[ subTopic ]]
    </div>
    <div class="card-body">
      [[ question ]] <br />

      <button id='1' v-on:click='validateAnswer(option1,1)' v-bind:disabled = 'isDisabled' class="btn btn-primary btn-block">
        [[ option1 ]]
      </button>
      <button id='2' v-on:click='validateAnswer(option2,2)' v-bind:disabled = 'isDisabled' class="btn btn-primary btn-block">
        [[ option2 ]]
      </button>
      <button id='3' v-on:click='validateAnswer(option3,3)' v-bind:disabled = 'isDisabled' class="btn btn-primary btn-block">
        [[ option3 ]]
      </button>
      <button id='4' v-on:click='validateAnswer(option4,4)' v-bind:disabled = 'isDisabled' class="btn btn-primary btn-block">
        [[ option4 ]]
      </button>

    </div>
    <div class="card-footer">
      <small>Authored by [[author]] on [[date]]</small>
    </div>

  </div>
  <div class="footer-buttons">
    <button class='btn btn-success' id='Previous' v-on:click='previous' :disabled = 'previousDisabled'>Previous</button>
    <button class="btn btn-danger" id='endTest' v-on:click="endTest" >End Test</button>
    <button class='btn btn-success' id='Next' v-on:click="next">Next</button>
  </div>
</div>

我希望能够在单击“结束测试”按钮时更改 div 问题的内容。

【问题讨论】:

  • 对 endtest 按钮使用一些切换标志。
  • 您能详细说明一下吗?
  • 如果你想通过改变这个值的真或假来改变视图,你可以隐藏和显示特定的视图。
  • 你是天使。你给了我一个想法。谢谢

标签: javascript vue.js


【解决方案1】:

您可以添加多个部分并在它们之间切换。

例如,您的标记可能是:

<div id='questions'>
  <div class="card card-1">
    <div class="card-header">
      <strong> [[ topic ]] | </strong> [[ subTopic ]]
    </div>

    <div v-show="sectionOne" class="card-body">
        foo questions
    </div>
    <div v-show="sectionTwo" class="card-body">
        bar questions
    </div>

    <div class="card-footer">
      <small>Authored by [[author]] on [[date]]</small>
    </div>

  </div>
  <div class="footer-buttons">
    <button class='btn btn-success' id='Previous' v-on:click='previous' :disabled = 'previousDisabled'>Previous</button>
    <button class="btn btn-danger" id='endTest' v-on:click="endTest" >End Test</button>
    <button class='btn btn-success' id='Next' v-on:click="next">Next</button>
  </div>
</div>

var app = new Vue({
  el: '#questions',
  data: {
    sectionOne: true,
    sectionTwo: false
  },
  methods: {
    nextButton: function () {
        this.sectionOne = false;
        this.sectionTwo = true;
    }
  }
})

【讨论】:

  • 谢谢,但请您演示一下切换。不仅适合我,也适合以后可能需要它的人。
  • 编辑答案以包括切换
猜你喜欢
  • 2018-02-15
  • 2015-09-28
  • 1970-01-01
  • 2020-07-24
  • 2020-04-19
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多