Ik heb een probleem met Knockout in combinatie met JQuery Mobile. Ik heb een pagina met een eenvoudige binding en een link naar een andere pagina ook met JQuery Mobile en Knockout. De pagina's los werken prima, maar als ik via de link naar de andere pagina navigeer krijg ik een JS error dat hij de bindings niet kan parsen, omdat nog niet het juiste viewmodel geladen is. Dit komt natuurlijk omdat JQuery mobile de nieuwe pagina binnen de huidige context laad, en knockout dus nog actief is.
Ik heb twee paginas ( Foo.html en Bar.html )
en
Als ik nou van Foo.html via de link naar Bar.html navigeer gaat het mis en krijg ik de volgende error in mijn Chrome console
Het kan toch niet zo zijn dat ik voor het navigeren eerst Knockout moet disablen op een of anderen manier? Heeft iemand een idee hoe ik dit op de juiste manier kan laten werken?
Ik heb twee paginas ( Foo.html en Bar.html )
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <!--Foo.html--> <div data-role="page" id="foo"> <div data-role="content"> <div data-bind="text: Foo"></div> <a href="Bar.html">Bar</a> </div> </div> <script type="text/javascript"> $('[data-role="page"]').live('pageshow', function () { var viewmodel = { "Foo": ko.observable("Foo") }; ko.applyBindings(viewmodel); }); </script> |
en
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <!-- Bar.html --> <div data-role="page" id="bar"> <div data-role="content"> <div data-bind="text: Bar"></div> <a href="Foo.html">Foo</a> </div> </div> <script type="text/javascript"> $('[data-role="page"]').live('pageshow', function () { var viewmodel = { "Bar": ko.observable("Bar") }; ko.applyBindings(viewmodel); }); </script> |
Als ik nou van Foo.html via de link naar Bar.html navigeer gaat het mis en krijg ik de volgende error in mijn Chrome console
Ik heb gezocht op google naar "Unable to parse bindings" en combinaties van JQuery Mobile en Knockout, maar kon geen oplossing voor dit probleem vinden.Uncaught Error: Unable to parse bindings.
Message: ReferenceError: Bar is not defined;
Bindings value: text: Bar
Het kan toch niet zo zijn dat ik voor het navigeren eerst Knockout moet disablen op een of anderen manier? Heeft iemand een idee hoe ik dit op de juiste manier kan laten werken?
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”