Wiązanie z nokautem kliknij wiązanie w zastosuj Powiązania
Ostatnio oddzieliłem ViewModel do oddzielnego pliku JavaScript.
<code>var Report = (function($) { var initialData = []; var viewModel = { reports: ko.observableArray(initialData), preview: function(path) { // preview report }, otherFunctions: function() {} }; return viewModel; })(jQuery); </code>
Oto kod związany z HTML i Knockout
<code><script type="text/javascript" src="path/to/report/javascript"></script> <script type="text/javascript"> $(document).ready(function () { ko.applyBindings(Report, document.body); }); </script> </code>
Interfejs użytkownika HTML ma przycisk, na którym kliknięcie to powiązanie danych z funkcją podglądu w modelu widoku
<code><input type="button" name="Preview" id="Preview" class="btnPreview" data-bind="click: Report.preview('url/to/report')" /> </code>
Problem Metoda podglądu jest wywoływana, gdy następująca linia wykonuje się w funkcji $ (document) .ready ()
<code>ko.applyBindings(Report, document.body); </code>
Oznacza to, że bez kliknięcia przez użytkownika funkcja podglądu przycisku Podgląd zostanie uruchomiona. Co może być powodem tego zachowania? Cały materiał działał bez zarzutu, gdy przeglądałem JavaScript modelu w samej stronie HTML.