javascript - AngularJS 数据绑定(bind)与 KnockoutJS 数据绑定(bind)

标签 javascript angularjs data-binding knockout.js

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

我注意到的第一件事是与 Angular 的绑定(bind)是立即的,就像逐个字符: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 接受整个输入并在末尾绑定(bind): 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 中进行绑定(bind),就像在 Angular 中一样,如何实现?

最佳答案

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

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

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

关于javascript - AngularJS 数据绑定(bind)与 KnockoutJS 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396533/

相关文章:

javascript - 为什么我的 XSLTProcessor transformToDocument 不起作用?

javascript - 当 typeof === number 时, Angular 给出错误 "Model is not of type ` number`"

javascript - AngularJS 和 Karma-Jasmine - $httpbackend 只有在有一个或多个未决请求时才刷新

javascript - UI-Bootstrap 示例不起作用

mysql - POST 请求返回 422(无法处理的实体)

data-binding - 对 Polymer 中的数据绑定(bind)引起的 DOM 变化使用react

javascript - 使用 C# 将数组注册到 JavaScript

javascript - 在为一个小行星编写代码后,如何制作多个小行星?

c# - 将属性名称存储在公共(public)常量字符串中是一种好习惯吗?

java - 在 @RequestParam 中绑定(bind)列表包含方括号