Zdravím všechny, snažím se pomalu dostat do problematiky Knockout a Web API (tímto díky Tomáši Hercegovi za přednášky) a rád bych se zeptal na pár tipů k určitým věcem. Je pravda, že se dá něco i vygooglit, ale ne vždy jsem byl přesvědčen, že je to to pravé. Zároveň se omlouvám, že píšu vše do jednoho dotazu, ale tak nějak to patří k sobě. Snad. 1) Přepínání modelu mezi editačním a zobrazovacím módem Řekněme, že mám složitější model (tím myslím, že to nejsou jen 2 property) a potřebuju přepínat stavy editovatelné/needitovatelné. Jde mi o to, abych nemusel procházet všechny controly v html a nastavovat u nich readonly/enabled property. Je nějaké doporučení/řešení, jak toto udělat nejelegantněji? Cílem je, aby formulář byl co do designu stejný, jen šlo položky editovat jen pokud je model v režimu "editovatelný". 2) Formátování hodnot na formuláři v Knockoutu Lze nějak globálně řešit formátování hodnot přes Knockout model? Jde mi hlavně o datumy a oddělovače tisíců v číslech. Sice bych toto mohl asi globálně naformátovat ve Web API controlleru na Json formateru, ale to si nemyslím, že je to ono. Jak toto řešíte, případně přes jaké JS knihovny? 3) Knockout, kolekce, komba a výchozí hodnoty Řekněme, že mám v modelu pole hodnot. Pro zjednodušení třeba osobu a seznam rolí. Potřebuji zobrazit info o osobě a na kombo nabindovat seznam rolí. Zároveň má osoba výchozí roli. To je v klidu. Ale potřebuji zároveň po načtení dat nastavit onu výchozí roli v kombu. Pro tuto mám v modelu určenou třeba nějakým ID role. Zjednodušeně - po načtení dat najdi v poli rolí tu s konkrétním ID, nastav ji jako zvolenou v kombu a zobraz detail role. Jak toto nejjednodušeji provedu a nabinduju? Zároveň samozřejmě ale potřebuji přepínáním v kombu zobrazovat detail zvolené role. Sice můžu vytvořit ko.observable na entitu role a tu nastavit jako value v kombu, ale jak to můžu spojit jen s ID, pomocí kterého nastavím tu zvolenou entitu? Mám si držet někde jen zvolené ID nebo celou entitu? Snad jsem to popsal trošku srozumitelně. To asi pro začátek stačí. Díky za rady.
|