我有一个通过 php 生成的 anchor 链接,它将绑定(bind)在 ko 上并且工作正常。我的问题是为什么 ko 函数在加载元素时执行?下面是生成的代码。
html:
<a data-bind="click: addOrderedProducts(11,"CRM130930001","Cream",0.00,0,0,0)" class="Add" title="Add" href="">Add</a>
ko函数:
self.addOrderedProducts = function (id,product_number,name,price,quantity,discount,balance){
self.orderedProducts.push(new Product(id,product_number,name,price,quantity,discount,balance));
};
请帮助我...提前致谢:)
最佳答案
这就是对象字面量在 Javascript 中的工作方式,因此在创建对象时会立即评估函数类等属性值。
要使其正常工作,您需要将 click
绑定(bind)中的函数调用包装到匿名函数中:
<a data-bind="click: function () { addOrderedProducts( ... ) }" href="">Add</a>
另请参阅文档:Accessing the event object, or passing more parameters
关于jquery - knockout : Why does click data-bind has execute on-load of element?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19276164/