En todos 'moderna' Navegadores las siguientes obras pero no en Internet Explorer 8:El uso de plantillas knockout condicionales con IE8
<!-- ko template: {if: $root.itemToEdit.SomeObject() === $data, name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->
me sale el siguiente error:
SCRIPT5022: Unable to parse bindings. Message: SyntaxError: Expected identifier, string or number; Bindings value: template: {if: $root.itemToEdit.SomeObject() === $data, name: 'EditItemTemplate', afterRender: $root.initializeEditPanel }
parece ser el inclusión de la declaración if
dentro de la definición de la plantilla. Si cambio el marcado a lo siguiente, IE8 es feliz:
<!-- ko if: $root.itemToEdit.SomeObject() === $data -->
<!-- ko template: {name: 'EditItemTemplate', afterRender: $root.initializeEditPanel } -->
<!-- /ko -->
<!-- /ko -->
¿Por qué incluir una declaración if
en mi plantilla no funciona en IE8?
Sip. Eso lo solucionó Gracias, Ryan. –
Podría publicar esto como preguntas y respuestas aquí, pero por ahora, solo porque acabo de pasar 5 horas tratando de resolver esto ... si tienes problemas con las plantillas IE8 y KO, asegúrate de que tu plantilla real no esté dentro de ningún ko. si bloques. Tenía mis plantillas en varias partes de la página y solo tenía problemas en IE8. Los movió a todos a la parte superior del cuerpo, ahora funciona muy bien. – eselk
@eselk Me salvaste al menos 5 horas con solo escribir tu comentario. ¡Gracias! – Peter