Как передать переменную в пользовательский компонент, пока она не будет оценена? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть пользовательский компонент:

<template>
  <div class="form-group">
    <label for="desc">{{label}}</label>
    <input id="desc" type="text" class="form-control input-sm"
           :name="label"
           :readonly="readonly"
           v-bind:value="value"
           v-on:input="$emit('input', $event.target.value)"
           v-validate="validate"
    />
    <div class="error-feedback">{{ errors.first(label) }}</div>
    {{readonly}}<!-- debugging -->
  </div>
</template>

<script>
export default {
  name: 'FormGroup',
  props: {
    label: String,
    value: String,
    readonly: String,
    validate: String
  },
  data: function() {
    return {
    }
  }
}
</script>

<style scoped>
  .error-feedback {
    color: #cc3333;
  }
</style>

Когда я звоню с:

  <FormGroup label="Channel" readonly="device_config.enabled" validate="required" v-model="device_config.some_setting" />

Пользовательский компонент получает свойство readonly в виде буквенной строки "device_config.some_setting", а не значение, содержащееся в device_config.some_setting.

Как я могу заставить свой пользовательский компонент сделать поле доступным только для чтения в зависимости от значения в модели вызывающего компонента, которое передается?

1 Ответ

0 голосов
/ 12 ноября 2018

Использование v-bind:readonly="setting" и setting должно быть свойством, определенным в родительском компоненте:

    <FormGroup label="Channel" :readonly="setting" validate="required" v-model="device_config.some_setting" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...