【问题标题】:String operations on Vue variable对 Vue 变量的字符串操作
【发布时间】:2020-12-24 15:14:09
【问题描述】:

如何使模板动态化?我希望field.title.arrayName 成为text1.arrayNametext2.arrayName 等等...

Vue.component('box', {
  props: ['field'],
  template: `
      <div>
        <p>Total:{{ field.title + '.arrayName.length' }}</p>
      </div>

      <div>
        <card-stack v-for="x in field.title + '.arrayName'" v-bind:course="x"></card-stack>
      </div>
    `
})

new Vue({
  el: 'main',
  data: {
    fields: [
      { title: 'text1' },
      { title: 'text2' },
    ],
  }
})

这是我的 HTML:

<main>
    <box v-for="x in fields" v-bind:field="x"></box>
</main>

另外,text1 和 text2 是组件名称:

var text1 = new Vue({
  el: '#text1',
  data: {
    arrayName: [
      { title: 'example' },
    ],
  }
})

注意

请编辑我的问题标题,因为我真的不知道如何描述它

【问题讨论】:

  • arrayName 到底是什么?
  • text1 和 text2 是组件名称。我编辑了我的问题

标签: vue.js vue-component


【解决方案1】:

使用eval() 有效:

&lt;p&gt;Total:{{ eval(field.title + '.arrayName.length') }}&lt;/p&gt;

&lt;card-stack v-for="x in eval(field.title + '.arrayName')" :course="x"&gt;&lt;/card-stack&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2022-06-10
    • 2013-12-03
    相关资源
    最近更新 更多