【问题标题】:AngularJS data-binding vs KnockoutJS data-bindingAngularJS 数据绑定 vs KnockoutJS 数据绑定
【发布时间】:2013-12-22 04:32:06
【问题描述】:

由于某些内部原因,我需要将我的 AngularJS 应用程序转换为 KnockoutJS,所以最近我开始尝试使用 Knockout。

我注意到的第一件事是与 Angular 的绑定是即时的,就像 char-by-char:http://jsfiddle.net/anvarik/3cnV9/

<div ng-app ng-controller="MainCtrl">
    <p>First Name: {{first}}</p>
    <p>Last Name: {{second}}</p>

    <p>First Name: <input ng-model="first" /> </p>
    <p>Last Name: <input ng-model="second" /> </p>
</div>     

另一方面,Knockout 接受整个输入并在最后绑定:http://jsfiddle.net/anvarik/CxBy9/

<div>
    <p>First Name: <strong data-bind="text:firstName"></strong></p>
    <p>Last Name: <strong data-bind="text:lastName"></strong></p>

    <p>First Name: <input data-bind="value:firstName"/> </p>
    <p>Last Name: <input data-bind="value:lastName"/> </p>
</div>

如果有人能解释一下背后的原因,我会很高兴。我想在 Knockout 中进行绑定,就像在 Angular 中一样,如何实现?

【问题讨论】:

  • 您需要在淘汰赛中再添加一个选项(valueUpdate 选项)以具有与 angular 相同的行为。示例: 默认情况下,value 在 'change' 事件时更新。请参阅文档:knockoutjs.com/documentation/value-binding.html
  • 非常感谢,如果您想寻求答案,我会接受。

标签: javascript angularjs data-binding knockout.js


【解决方案1】:

您需要在淘汰赛中再添加一个选项(valueUpdate 选项)以具有与 Angular 中相同的行为。示例:

<input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /> 

默认情况下,值在“更改”事件时更新。请参阅文档:knockoutjs.com/documentation/value-binding.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 2017-10-18
    • 2013-02-18
    • 1970-01-01
    • 2015-02-26
    • 2018-05-08
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多