2017-06-17 94 views
5

Chcę ustawić atrybut na moim komponencie bez żadnej wartości. Na przykład:Elementy konstrukcyjne Vue bez wartości

<my-button primary>Save</my-button> 

Jestem deklarując primary w props mojego komponentu:

Vue.component("my-button", { 
    props: ["primary"], 
    template: "<button v-bind:class='{primary: primary}'><slot></slot></button>" 
}) 

Niestety, to nie działa. Właściwość primary to undefined, a klasa nie jest stosowana.

JSFiddle: https://jsfiddle.net/LukaszWiktor/g3jkscna/

Odpowiedz

8

Najważniejsze jest, aby zadeklarować typ podpory jako Boolean:

props: { 
    primary: Boolean 
} 

Następnie określając jedynie atrybut nazwa sprawia, że ​​jego wartość ustawioną na true.

robocza JSFiddle: https://jsfiddle.net/LukaszWiktor/gfa7gkdb/

+0

kuponów do [@Mottokrosh] (https://stackoverflow.com/users/1244894/mottokrosh) jako on opublikowany pierwotnie to rozwiązanie w laracasts dyskusji: [Props bez wartości (myślę atrybuty) w Vuejs] (https://laracasts.com/discuss/channels/vue/props-without-values-think-attributes-in-vuejs). –