敲除点击绑定不会在点击时触发

Knockout click binding doesnt fire on click

只需设置一个基本的 knokcout 视图模型和相应的 html 视图,但点击功能不会触发。

<script>
    new myModel.XYZ();
</script>

<div id="bar-1">
    <button
            title="Get Document"
            data-toggle="tooltip"
            data-bind="click: getDocument">
        <span class="fas fa-file-alt"></span>
    </button>
</div> 

我的视图模型设置为;

myModel.XYZ = function (par) {
    var self = this;

    self.getDocument = function(submission) {
       alert('');
       }
    ko.applyBindings(self, $("#bar-1")[0]);
};

没有控制台错误或任何其他可以帮助我找出问题的信息。

首先,定义您的模型

var myModel = function(par) {
   var self = this;
   self.getDocument = function(submission) {
      alert('');
   }
}

然后设置绑定

ko.applyBindings(new myModel(document.getElementById("#bar-1")));

JSFiddle

我基本同意@erpfast,但是如果你仍然想实现你的方式,你忘记声明 myModel 并在 Object 上添加方法。

var myModel ={};
myModel.XYZ = function (par) {
    var self = this;

    self.getDocument = function(submission) {
       alert('');
       }
    ko.applyBindings(self, $("#bar-1")[0]);
};

new myModel.XYZ();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="bar-1">
    <button
            title="Get Document"
            data-toggle="tooltip"
            data-bind="click: getDocument">
            Button
        <span class="fas fa-file-alt"></span>
    </button>
</div>