Нокаутирование при нажатии кнопки привязки на applyBindings
Недавно я выделил ViewModel в отдельный файл JavaScript.
<code>var Report = (function($) { var initialData = []; var viewModel = { reports: ko.observableArray(initialData), preview: function(path) { // preview report }, otherFunctions: function() {} }; return viewModel; })(jQuery); </code>
Вот код, связанный с HTML и 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>
Пользовательский интерфейс HTML имеет кнопку, при нажатии которой происходит привязка данных к функции предварительного просмотра в модели представления.
<code><input type="button" name="Preview" id="Preview" class="btnPreview" data-bind="click: Report.preview('url/to/report')" /> </code>
Problem Метод предварительного вызова вызывается, когда следующая строка выполняется в функции $ (document) .ready ().
<code>ko.applyBindings(Report, document.body); </code>
То есть без нажатия пользователем кнопки предварительного просмотра запускается функция предварительного просмотра. В чем может быть причина такого поведения? Все это работало нормально, когда я просматривал модель JavaScript на самой HTML-странице.