Mezery a čísla
Co zákazníci napíšou, není vždycky to, co myslí, a nejčastěji překážejí dvě věci. v-model má na každou z nich modifikátor: slovo za tečkou, které změní, co dělá, stejně jako .enter v @keydown.enter.
Mezery. Jméno napsané s mezerami kolem, " Anna ", se dostane do refu i s nimi. Na stránce mezery před ním většinou zmizí, ale ta za ním je vidět: Objednávka na jméno Anna . A jméno ze samých mezer není "", takže ho kontrola prázdného jména nezachytí. v-model.trim dá text do refu bez mezer na začátku a na konci, stejně jako trim():
<input v-model.trim="jmeno">Čísla. Hodnota textového pole je vždycky text a stejně tak value možnosti v seznamu: value="20" je "20", ne 20. A text a čísla se nesčítají, jak víte z kurzu JavaScriptu: 75 + "20" je "7520". Tady je spropitné z rozbalovacího seznamu, přičtené k ceně cappuccina:
<select v-model="spropitne">
<option value="0">Bez spropitného</option>
<option value="20">20 Kč</option>
</select>
<p>Celkem: {{ cena + spropitne }} Kč</p>S const cena = 75; a vybranými 20 Kč je celkem 7520 Kč. v-model.number převede hodnotu na číslo dřív, než ji dá do refu, a celkem je pak 95 Kč:
<select v-model.number="spropitne">K číslům ještě dvě věci:
- Textové pole s
type="number"je určené pro čísla a Vue k jehov-modelpřidá.numbersamo. - Přepínače a zaškrtávací políčka
.numberignorují. Dejte jim hodnoty přes:value::value="20"je číslo 20, protože s:je v uvozovkách JavaScript.
Jak psát:
Pokyny
- 1
Napište do textového pole pro jméno
Annas pár mezerami před a za a podívejte se na souhrn. Pak kv-modeltextového pole přidejte.trim. - 2
Vyberte spropitné 20 Kč a podívejte se, kolik je celkem. Pak ze spropitného udělejte číslo pomocí
.number.