2016-10-29 1 views
3

Ich habe ein Problem mit VueJS 1.0, und dieses Verhalten funktioniert in VueJS 2.0. Wenn ich in VueJS 1.0 eine Liste von Ganzzahlen habe und ein Ankreuzfeld-V-Modell daran gebunden habe, wird die Liste der Ganzzahlen nicht als überprüftes Attribut abgebildet. HierVueJS Checkbox Model Array von Ints

ist die HTML-

<div id="app"> 
    <div class="col-sm-offset-3 col-sm-4 clearfix text-center"> 
    <h4>On Each Day of The Week</h4> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox1" v-model="schedules[0].by_days" value="1"> M 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox2" v-model="schedules[0].by_days" value="2"> Tu 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox3" v-model="schedules[0].by_days" value="3"> W 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox4" v-model="schedules[0].by_days" value="4"> Th 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox5" v-model="schedules[0].by_days" value="5"> F 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox6" v-model="schedules[0].by_days" value="6"> Sa 
    </label> 
    <label class="checkbox-inline"> 
     <input type="checkbox" id="inlineCheckbox7" v-model="schedules[0].by_days" value="7"> Su 
    </label> 
    <div class="clearfix"></div> 
    </div> 
    By Days: {{ schedules[0].by_days.join(', ') }} 
</div> 

Dann ist hier das JavaScript:

new Vue({ 
    el: '#app', 
    data: { 
     schedules: [ 
      { 
      'by_days': ["1", 2, 3] 
      } 
     ] 
    } 
}) 

Der Ausgang wird "1" haben richtig checkboxed, aber 2 & 3 ganze Zahlen sind und zeigen nicht als aufgegebenes . In VueJS 2.0 funktioniert das, aber nicht VueJS 1.0.

Eine vollständige JSFiddle finden Sie hier: https://jsfiddle.net/qf5gqsg6/

Antwort

0

ich die Antwort gefunden, ich muss auf den Wert vom Eingang der BIND-Wert an den Eingang setzen, anstatt nur zu verlassen.

Also statt:

<input type="checkbox" v-model="schedules[0].by_days" value="2"> M 

Es musste sein:

<input type="checkbox" v-model="schedules[0].by_days" v-bind:value="2"> M 

Natürlich funktioniert das nicht, wenn es eine Liste der gemischten Strings und Integer-Zahlen ist, aber es funktioniert in Mein Fall, wo alles eine ganze Zahl war.

+0

Und auch, weil die Nummer 2 in 'value = "2"' ist eine Zeichenfolge, keine Zahl. –

0

Ändern Sie Ihre Daten ["1",2,3] in [1,2,3]

Ändern Sie Ihre Checkbox Eingabeelement value in :value