Knockout JS   zodpovězená otázka

HTTP/HTML, JavaScript

Snažím se prokousat FW knockout.js. Takže aktuální problém. Mám model, který načítá do jedné ze svých vlastností kolekci objektů pomocí WebAPI. To následně binduji do HTML. To je OK. Anyní neznámá:

1-jak vyřešit alternativu UserControls. V té kolekci je vlastnost třeba Type, která nabývá hodnoty 0, 1 a 2. Podle toho jaká je tato hodnota, tak potřebuji zobrazit jiné HTML. Např. Jedná se o zobrazení datového typu. Když bude 0=Int32, tak potřebuji HTML s validací a podobně jako číslo, když bude typ=1, tak je potřeba zobrazit textovou položku a 3 bude datumové zobrazení. Doufám, že to srozumitelné.

2-mám kolekci, kterou renderuji. Každá položka kolekce je vlastně objekt, který obsahuje vlastnost kolekce. Přidám do modelu funkci, která mi bude přidávat do té subkolekce položku, tak to v JS vidím, ale do HTML se mi to nepřenáší (neaktualizuje) a také když to pošlu zpátky na server, tak ta kolekce také neobsahuje ty mnou přidané nové položky. Jak na to.

Prozatím děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem pokročil a využil funkci ko.utils.addOrRemoveItem(, která mi pomůže vyrenderovat celý ový item. Ale nastal druhý problém a to, že když to následně odešlu na server (WebAPI), tak přidané nové položky nejsou na serveru vidět. Odebrané ano.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak bych asi měl ukončit tuto "vášnivou diskusi". Problém byl v deserializaci, která nevykázala žádnou chybu. Takže když v subkolekci naplním vlastnost int větší hodnotou než int32 a na serveru se jí WebAPI deserializuje, tak nic nezahlásí a nevytvoří zkrátka celý objekt. Toť veškerá chyba.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback