我一直想尝试使用knockout.js,但并不真正需要它。然而,我正在构建一个新的屏幕,并且想知道是否值得尝试使用knockout.js而不是jquery。

这是谷歌日历重复预约屏幕。现在我想做的是非常类似于他们可能的复选框,下拉列表和单选按钮。
每个选择都会影响摘要部分。因此,如果我取消勾选"F“,那么摘要应该会更新。
knockout会让我更容易构建摘要部分吗?或者是他们的其他东西可以帮到我?
发布于 2012-10-10 06:54:05
这是你可以用Knockout.js做的事情。KO不一定是jQuery的替代品,而是一个更高级别的层来帮助模型和视图绑定(即VMMV)。jQuery对于动画和最重要的AJAX调用来说仍然很棒。根据您所做的工作,KO和jQuery可以很好地相处。
KO可能很难让你头脑清醒,但一旦你做到了,它就会变得非常棒,并让某些事情变得非常简单。例如,我只处理了单击星期几并显示它的部分:
http://codepen.io/CWSpear/pen/IbkvJ
如果没有检查,则不会显示任何内容,但一旦您开始检查内容,它就会显示检查的日期(即Weekly on Thursday)。
JavaScript只有几行代码。神奇之处在于绑定:
每个输入都有一个data-bind="checked: days"属性,这意味着当它们被选中时,它们将被自动添加到我的ViewModel中的days变量中,这是一个ko.observeableArray。这意味着它正在关注这些复选框,一旦有变化,它就会通知任何依赖于它的东西。
这就是我们的summary变量,它是一个ko.computable (它是一个可计算的可观察值)。它有一个属性:data-bind="text: summary, visible: days().length > 0"。这意味着只有当days为非空时它才可见,并且文本在我们的javascript中定义为"Weekly on list of days“。
发布于 2012-10-10 07:22:55
我已经在各种不同的项目中使用Knockout大约18个月了。根据我的经验,Knockout对于将行为绑定到表单状态,然后最终将这些表单转储回您的服务器非常有用。
在我看来,Knockout的最大缺点是:
对于这种用例,您不会特别容易受到前两种情况的影响。你可能支持第三种,但如果你已经在其他地方使用Knockout,我会说去吧。
https://stackoverflow.com/questions/12809310
复制相似问题