Co jsou data selectboxu v MVC rubrika: Programování: Jiné

5 Andreaw Fean
položil/-a 27.2.2017

Představme si nějakou komponentu, která obsahuje textový input pro jméno, jeden selectbox pro muž/žena, a jeden selectbox s, já nevím, třeba městem. Když nad tím budu uvažovat v kontextu MVC, tak View je rozmístění a podoba těch jednotlivých inputů. Třeba selectbox pro muž/žena mohu předělat na rádiobutton. Controller je logika, která zajistí, že při přepnutí muž/žena se schová/zobrazí další input - "jméno za svobodna". No, a Model jsou vstupní a výstupní data. Takže třeba jednoduchá struktura:

{
    surname: "Pavlovič",
    sex: "male",
    city: "London"
}

A k tomu Selectboxu město: Měst je samozřejmě velké množství. Pravděpodobně bych tam dal nějaký našeptávač, a nenahrával bych je hned všechny do toho inputu. Udělal bych to nějak reaktivně, v html třeba pomocí ajaxu, a tak podobně. Jak tato data pro ten selecbox souvisí s MVC? Patří do modelu? Nebo jinam? A jakým způsobem? Co myslíte?

odkaz Vyřešeno
15 Taco
odpověděl/-a 2.3.2017
 
upravil/-a 2.3.2017

Pokud to chápu dobře, tak ta data selectboxu patří opravdu do Modelu. Konkrétně do validační části. Prvky toho selecboxu jsou doménová oblast hodnoty, kterou ten prvek může nabejvat. Tak jako Boolean může mět jen dvě hodnoty, Sex taky, tak City mohou mět jen hodnoty existujících obcí. Ale ve výsledku dostaneš True, Male, Brno.

Model není jen vstupní a výstupní data, ale patří do něj i validace.

To, že tam máš nějaký našeptávač je jen MVC v MVC. (Je to podobné jako v případě datepickeru. Tebe taky nezajímá, že je to řešené tak či onak, ale je to komponenta.) Stejně ten prvek má jen určitý model, určité chování, a může vrátit data z určité množiny povolených.

A AJAX je prostě hack, aby si nemusel ta data ládovat přímo do stránky. S MVC to nijak, to že je to ajaxem, nesouvisí.

Update:
S tím AJAXem, třeba v Nette jsem si udělal komponentu selecboxu, která umí ta data selecboxu načítat přes ajax, ale tak, abych to mohl přímo napojit na model. Mohlo by být zajímavé.

Komentáře

  • Andreaw Fean : A jak by si to dělal u desktopové aplikace? 2.3.2017
  • uetoyo : @Andreaw Fean Jak to myslíš, co ti není jasné? 2.3.2017
  • Andreaw Fean : Ne, blbost, už je mi to jasné :-) Díky za odpověď. Když bude čas, kouknu na ten kód. 3.3.2017

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.