2017-12-12 8 views
1

このクラスが適用されると思われる入力フィールドにクラスをバインドしたいとします。私の場合、私は動的に作成している入力フィールドと、動的に作成された入力フィールドの値をvモデルとバインドできないため、クラスをv-modelデータでバインドできません。 これは私がv-forループの内部で作成していますフィールドです:入力フィールドはいくつかの種類を持っている場合、私がチェックできるように、私は、私はその入力フィールドで、今クラスをバインドする方法を知っていただきたいと思いこの入力フィールドでのVueクラスバインディング

<template v-for="input in ninjaForm.fields"> 
    <div class="control"> 
     <input 
     class="input is-large" 
     :class="{ hasValue: input.value }" 
     :ref="input.label.toLowerCase()" 
     :type="input.type" 
     :name="input.label.toLowerCase()" 
     :required="input.required == 1"> 
     <label>{{ input.label }}</label> 
    </div> 
    </template> 

例えば、次のようなものです:

:class="{ 'has-value' : this.input.value != ''}" 

私はVueでこれを行うことができますか?

+0

「hasValue」は、CSSクラスまたはデータですか? – samayo

+0

これはCSSクラスです – Leff

+0

このようなものが欲しいですか? https://jsfiddle.net/943bx5px/12/「赤」または「緑」の色を入力すると、入力値がクラス – samayo

答えて

1

私はあなたの入力がfalsyないいずれかの値を持っている場合、あなたはこのようなものがあるでしょうあなたはCSSクラスhasValueを適用するために、あなたの例ではclass binding using the Object Syntax

をやろうとしていると思います:

<input 
    class="input is-large" 
    :class="{ hasValue: input.value }" 
    :ref="input.label.toLowerCase()" 
    :type="input.type" 
    :name="input.label.toLowerCase()" 
    :required="input.required == 1"> 
<label>{{ input.label }}</label> 
+0

はい、私の構文は間違っていますが、正しい構文であっても、クラスをv-modelの値のようなデータ値にバインドすることができないので、これは私が探しているものです。その特定の入力であり、コンポーネントデータオブジェクトからの値ではありません。 – Leff

関連する問題