代码之家  ›  专栏  ›  技术社区  ›  neubert

在vue.js模板中显示主机名

  •  1
  • neubert  · 技术社区  · 5 年前

    假设我有这样的东西:

    <q-input v-model="form.uuid" inverted-light color="white" stack-label="Your subdomain:" @blur="$v.form.uuid.$touch"
        :error="$v.form.uuid.$error"
        suffix=".website.com">
    </q-input>
    

    现在.website.com是硬编码的,但是如果我想让它基于访问该网站时使用的主机名呢?如果我去mydomain.tld,它不会显示website.com,而是显示mydomain.tld。

    有什么想法吗?

    谢谢!

    0 回复  |  直到 5 年前
        1
  •  1
  •   skirtle    5 年前

    这里的难点是删除子域。我不知道有什么可靠的方法可以做到这一点。

    只是得到 host 模板中的渲染应该足够简单:

    new Vue({
      el: '#app',
      
      data () {
        return {
          currentUrl: location.toString(),
          host: location.host
        }
      }
    })
    <script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
    
    <div id="app">
      <p>Full: {{ currentUrl }}</p>
      <p>Host: {{ host }}</p>
    </div>

    很明显,在最初的例子中需要对它进行调整,比如 :suffix="'.' + host" .