2016-03-22 5 views
1

Ich habe einige Radio-Tasten in meiner Web-Anwendung, die ich mit vue.js erstellen, die alle gut funktionierte, aber als ich beschloss, Bootstraps Stil der Radio-Tasten zu verwenden es irgendwie mucked oben. Mir ist klar, dass ich Vue-Strap verwenden muss, damit die Datenbindung für bootstrap-gestylte Optionsfelder in vue.js korrekt funktioniert, aber ich kann immer noch nicht so gut funktionieren wie zuvor. HierVue-Band Radio-Tasten funktioniert nicht mit vue.js

ist, was ich hatte vor:

<div class="col-lg-6"> 
    <div class="form-group"> 
    <div class="radio"> 
    <label> 
     <input type="radio" value="Broker" checked="checked" required v-model="contactConnection"> Broker 
    </label> 
    </div> 
    <div class="radio"> 
    <label> 
    <input type="radio" value="Relationship Manager" required v-model="contactConnection"> Relationship Manager 
    </label> 
    </div> 
    </div> 
</div> 

JS (vue.js)

data: function() { 
     return { 
     contactConnection: '' 
     } 
    } 



    this.dropzoneDownload = new Dropzone("#dropzone-download", { 
      url: common.getDataHost() + "/mailmerge/doStuff?pc=" + self.contactConnection, 
      paramName: "file", 
      withCredentials: true, 
      maxFilesize: 5, // MB 
      maxFiles: 1, 
      addRemoveLinks: true, 
    } 

Das hat gut funktioniert und mir erlaubt, durch den Verbindungstyp übergeben (je nach Optionsfeld Wert ausgewählt) zu meiner Route, als ich eine Datei in meine Dropzone fallen ließ. Ich möchte jedoch den Bootstrap-Stil der Optionsfelder verwenden.

Ich habe jetzt diese mit vue-Gurt:

<radio-group :value.sync="contactConnection" type="primary"> 
         <radio value="Broker"checked>Broker</radio> 
         <radio value="Relationship Manager" >Relationship Manager</radio> 
    </radio-group> 

JS - Vue.js (vue-Gurt)

Vue.component('component-mailmerge-bulk', { 
    template: _template, 
    components: { 
     'radio-group': radioGroup, 
     'radio': radioBtn 
    },props: { 
     state: { 
      type: Object 
     } 
    }, 
    data: function() { 
     return { 
     contactConnection: '' 
     } 
    } 

this.dropzoneDownload = new Dropzone("#dropzone-download", { 
      url: common.getDataHost() + "/mailmerge/doStuff?pc=" + self.contactConnection, 
      paramName: "file", 
      withCredentials: true, 
      maxFilesize: 5, // MB 
      maxFiles: 1, 
      addRemoveLinks: true, 

Ordnet nur contactConnection zu dem geprüften Wert und ändert sich nicht dynamisch mehr auf den ausgewählten Radio-Button-Wert. Ich merke, dass es kein V-Modell mehr verwendet, sondern <radio-group :value.sync="contactConnection"

Wie kann ich es tun, so ändert sich der contactConnection Wert dynamisch wie früher, bevor ich Vue-Strap verwendet habe?

+0

http://stackoverflow.com/questions/30317032/bootstrap-radio-button-group-knockout-binding-doesnt-work –

Antwort

3

I entfernt Daten-Toggle = "Tasten" und setzen Sie diesen Stil in meiner Komponente und es funktioniert:

input[type=radio]{ 
    margin: 4px -8px 0; 
    visibility: hidden; 
}