我有一个简单的代码,它使用诸如这这样的敲除,在里面我有一个函数来大写名字:
self.capi = function(){
self.firstName(self.firstName().toUpperCase());
}当我点击Capi按钮时,这个函数将被执行。但我在这里感到困惑的是,当我使用data-bind="click: capi"时,它对我来说很好。但是如果我使用data-bind="click: capi()",无论我是否单击该按钮,名称都是大写的?有人能在这里为我解释一下data-bind="click: capi()"和data-bind="click: capi"的区别吗?
发布于 2016-02-01 23:13:11
从技术上讲,Knockout处理这些绑定的方式是一样的。
说大也大吧。
它们都像预期的那样将一个函数绑定到click事件,但是当您将这些()放在末尾时会发生一些不同的事情。这告诉Knockout不仅在点击时运行它,而且在处理它时立即运行它。这对于设置初始状态非常有用,比如您希望向用户展示按钮按下时发生的情况。
TL;博士
它们的工作原理相同,但是在单击和加载页面时都会调用data-bind="click: capi()"。
https://stackoverflow.com/questions/35142174
复制相似问题