Sto riproducendo un blocco HTML simile per diversi oggetti leggermente diversi. Sono uguali al 90%, ma ognuno ha alcune peculiarità che richiedono osservabili aggiuntivi. Vorrei rendere ognuno di questi oggetti per lo più simili in un blocco di modello, ma sto incontrando problemi con oggetti non definiti.Knockout JS: verifica dell'esistenza di un osservabile in un binding IF
Fondamentalmente, voglio verificare l'esistenza di un oggetto osservabile prima di renderlo nel modello.
che sto cercando di fare qualcosa di simile:
<div data-bind="foreach: blocks">
<h2 data-bind="text: normalHeader"><h2>
<p data-bind="text: normalText"></p>
<!-- ko if: specialText --><p data-bind="text: specialText"></p><!-- /ko -->
</div>
Quindi, se specialText non esiste (e non solo non ha alcun valore, ma non esiste affatto) per quella iterazione del blocks
, ignorare il condizionale. L'errore che sto ricevendo è:
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: specialText is not defined;
Da quello che ho capito di Knockout di "se" vincolante, dovrebbe funzionare se l'oggetto restituisce alcun tipo di valore falso-come, come null o undefined, il che significa che il se l'associazione dovesse fallire con grazia, cosa che sicuramente non è.
C'è un modo per farlo funzionare?
Questo funziona e sembra più elegante; Grazie! – Jack
tuttavia, ovviamente non cambia se viene visualizzata la proprietà, in quanto non osservabile – mikus
non fa ciò che la gente normalmente vorrebbe fare, "ovviamente"? bravo – pilavdzice