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