Как передать переменные pug в динамические атрибуты vue? - PullRequest
0 голосов
/ 10 января 2019

Проблема в том, что я не могу передать динамические переменные Pug компоненту Vue через атрибуты, если они имеют тип «String». Vue считает строку, которую я пытаюсь передать, именем свойства Vue.

Проблема

template.pug

- var pugVariable = 'John';

my-component(v-bind:name= pugVariable)
* MyComponent.Vue *
export default {
  name: 'MyComponent',

  props: {
    name: {
      type: String
    }  
  }
}

Я получаю сообщение об ошибке: «Свойство или метод« Джон »не определен в экземпляре, но на него ссылаются во время рендеринга». Это означает, насколько я понимаю, что Vue считает строку, находящуюся в pugVariable, как имя собственности Vue.

Вопрос

Итак, вопрос в том, чтобы убедить Vue рассматривать эту переменную как строку?

Что я уже пробовал:

Я попытался передать литерал объекта вместо строки следующим образом:

my-component(v-bind:name= {value: pugVariable})
Это работает, но мы теряем возможность проверять тип передаваемого значения, поэтому мне не нравится это решение.

1 Ответ

0 голосов
/ 10 января 2019

Я получил ответ раньше, кто бы ни: :)

Как описано здесь https://stackoverflow.com/a/45175556/7473709,, в случае, если мы хотим просто передать статическую строку, мы должны просто избавиться от префикса v-bind:, поэтому он выглядит следующим образом:

my-component(name= {value: pugVariable})
...