我有使用类似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()"
答案 0 :(得分:3)
从技术上讲,Knockout处理这些绑定的方式与它们的工作方式相同。
排序。
它们都按照预期将一个函数绑定到click事件,但是当你将()
粘贴到最后时会发生不同的事情。这告诉Knockout不仅在点击它时运行它,而且在它处理它时立即运行它。这对于设置初始状态非常有用,例如,如果您想向用户显示按下 按钮时会发生什么的示例。
<强> TL; DR 强>
它们的工作方式相同,但data-bind="click: capi()"
在点击时以及页面加载时都会被调用。