【问题标题】:Change value of observable to 1 and 0 onclick knockout js将 observable 的值更改为 1 和 0 onclick 淘汰赛 js
【发布时间】:2016-03-15 00:21:42
【问题描述】:

我有一个可观察的

self.oneOrZero = ko.observable(0);

我想通过单击一个按钮将这个 observable 的值更改为 1 或 0。

<button data-bind="onclick : " > Change </button> 

【问题讨论】:

标签: javascript knockout.js


【解决方案1】:

您可以使用 mod 运算符从 0 切换到 1,反之亦然。 使用点击绑定,因为在敲除时无法识别 onclick

self.oneOrZero = ko.observable(0);
self.toggle = function() {
  self.oneOrZero((self.oneOrZero() + 1) % 2);
}

<button data-bind="click : toggle" > Change </button> 

【讨论】:

  • 很好的答案,但是使用% 运算符是不是有点矫枉过正?为什么不只是 self.oneOrZero(self.oneOrZero() ? 0 : 1);(正如 Neps 在我之前评论的那样)
  • 嗯,是的,也许。在成本方面我不知道哪个更有效:类型转换或 mod 运算符。在代码方面,对我来说使用 mod 更自然,因为我们处理的是数字,而不是布尔值......但我认为更多的是偏好问题。也许 Boolean(self.oneOrZero()) ? 0 : 1,还是 self.oneOrZero() === 1 ? 0 : 1. Javacript 在转换方面非常灵活,但我总是喜欢避免这种情况。
猜你喜欢
  • 2013-04-10
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 2017-10-16
  • 2018-03-30
相关资源
最近更新 更多