javascript - VueJS 使用 prop 作为数据属性值

标签 javascript webpack ecmascript-6 vue.js vuejs2

我真的在为以下情况而苦苦挣扎:

一些索引页:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8"/>
  </head>
  <body>
    <div id="app">

      <ul>
        <li>some existing option</li>
        <example-component :foo="foo" :bar="bar"/>
      </ul>

      <a @click.prevent="showDetail(1, 'abc')" href="#" >Click ME!</a>

    </div>


    <script src="app.js"></script>


  </body>
</html>

一些单文件组件:

<template>
    <li><a v-show="checkBool" data-toggle="tab" class="some-class" href="#container-div" data-tab-url="{{ this.foo }}">{{ this.bar }}</a></li>
</template>



<script>
export default {

  props: ['foo', 'bar'],


  computed: {
    checkBool: function() {
      return (this.foo != undefined && this.bar != undefined )
    }

  }

}
</script>

app.js 看起来像这样:

import Vue from 'vue'

Vue.component('example-component', require('ExampleComponent.vue'));

const app = new Vue({
    el: '#app',

    props: [
      'foo',
      'bar'
    ],

    data: {
      foo: '',
      bar: ''
    },

     methods: {
      showDetail: function (foo, bar) {
        this.foo = foo,
        this.bar = bar
      }
  }
});

我在 laravel 安装下使用带有 webpack 的 babel。

场景是这样的:

  • 当我点击 Click ME! 链接时,foobar 会更新并传递给组件(这部分正在运行)
  • 此示例中名为 checkBool 的计算属性变为 true,因此我将看到新的列表项(这部分正在运行)
  • 新列表项,有一个链接,文本正确设置为 bar(这部分也有效)

此时我知道组件和父组件之间的值设置和通信工作正常,但是 data-tab-url="{{ this.foo }}" 部分让我发疯.

我没有按预期解析 mustache 语法并返回 data-tab-url="1",而是得到引号之间所有内容的解析/转义值。

类似于data-tab-url="%7B%7B+this.foo+%7D%7D"

现在,如何防止编码发生? 据我所知,vuejs 1.* 中曾经有一种方法。使用三个括号:{{{ this.foo }}} 但它现在已被弃用,取而代之的是 v-html 我不能将其用于我的示例。

最佳答案

像这样绑定(bind)属性 :data-tab-url="foo"

这将为受影响的元素提供一个 data-tab-url 属性,其值等于组件的 foo 属性。

关于javascript - VueJS 使用 prop 作为数据属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43236848/

相关文章:

javascript - 将参数传递给命名导出对象文字内的函数

javascript - 通过特定元素名称抓取数据 - PhantomJS

javascript - 谷歌浏览器 28.0.1500.72 及更高版本中 Ajax 打开功能的问题

javascript - 如果其中一个 div 是自动调整大小,则使 2 个 div 垂直显示以填充它的父级

reactjs - 如何修复 "SyntaxError: Invalid or unexpected token @import"?

reactjs - 入口点未定义 = ./index.html

javascript - 为什么在JavaScript中对象不可迭代?

javascript - 在 Python 中比较字典与在 JavaScript 中比较对象之间的区别

javascript - 调试用 Testcafe 编写的 UI 测试

javascript - 在单个 prop React.js 中传递多个方法