Knockout点击绑定:onClick vs. onClick()

时间:2016-02-01 23:08:30

标签: javascript jquery knockout.js

我有使用类似this的淘汰赛的简单代码,而且我有一个函数来大写第一个名字:

ask max-n-of 100 workers [LPAdv] [set AWeight 1]
ask workers [ifelse AWeight = 1 [set LPMid2 -1000] [set LPMid2 LPMid]]
ask max-n-of 100 workers [LPMid2] [set MWeight 1]
ask workers [set PreWeight ( AWeight + MWeight )]
ask workers [if PreWeight = 0 [set RWeight 1]]

单击Capi按钮时将执行此功能。但我在这里感到困惑的是,当我使用self.capi = function(){ self.firstName(self.firstName().toUpperCase()); } 时,它对我来说很好。但是如果我使用data-bind="click: capi",无论我是否单击按钮,第一个名称都会大写?任何人都可以在这里向我解释data-bind="click: capi()"data-bind="click: capi()"

之间的区别

1 个答案:

答案 0 :(得分:3)

从技术上讲,Knockout处理这些绑定的方式与它们的工作方式相同。

排序。

它们都按照预期将一个函数绑定到click事件,但是当你将()粘贴到最后时会发生不同的事情。这告诉Knockout不仅在点击它时运行它,而且在它处理它时立即运行它。这对于设置初始状态非常有用,例如,如果您想向用户显示按下 按钮时会发生什么的示例。

<强> TL; DR

它们的工作方式相同,但data-bind="click: capi()"在点击时以及页面加载时都会被调用。