为什么我在 viewModel 中的函数在文档准备就绪时被调用?

Why my functions in the viewModel are invoked on document ready?

我希望在单击按钮时调用这些函数,而不是在我的脚本第一次加载时调用。

function viewModel() {
    var url = window.location.href;
    self.submit = function () {
        //some code
    };
    self.changeTariffModel = function () {
        //some code
    };

    var instance = new viewModel();
    ko.applyBindings(instance, 
    document.getElementById('ParticipatorHoursSummary'));
}

声明绑定处理程序时请注意不要计算附加到处理程序的函数 例如,这个:

<input type="button" value="Провери" data-bind="click: submit()"/>

应该这样写:

<input type="button" value="Провери" data-bind="click: submit"/>

请注意我是如何省略末尾的“()”的。当您将这些括号放入时,您正在评估函数而不是仅分配处理程序