javascript - knockout 绑定(bind)仅适用于单向

标签 javascript html knockout.js typescript knockout-2.0

我正在使用带有 typescript 的 knockout 来构建我的应用程序的 UI。如果我的 UI 中的某些内容发生变化,我想使用 knockout 绑定(bind)来通知我的 typescript 。

我的代码可以工作,但不幸的是只能以一种方式。初始值 5 在页面加载后显示,但如果我更改了breakTime输入中的某些内容,则永远不会输入订阅方法。

selectedDates 数组包含包含breakTime 属性的对象。

HTML 代码:

<!-- ko 'foreach': $root.selectedDates-->
<td>
    <input type="text" name="breakTime" data-bind="value: breakTime()" class="bookingTextBox" />
</td>
<!-- /ko -->

typescript 代码:

public breakTime: KnockoutObservable<string>;

constructor(date: Date, viewModel: Booking.BookingViewModel) {    
    this.breakTime = ko.observable("30");
    this.breakTime.subscribe((newValue) => {
        alert(newValue);
    });
}

我以前从未使用过 foreach-element 的 knockout ,也许错误就是由此引起的。我还需要做其他事情才能使其正常工作吗?

最佳答案

您需要从值绑定(bind)中删除括号data-bind="value:breakTime"

原因是,如果您使用括号,您将绑定(bind)到输入,即加载绑定(bind)时可观察到的结果。如果您执行此操作,则效果完全相同 data-bind="value: 5"

如果没有括号,您必须对整个可观察值进行赋值。

关于javascript - knockout 绑定(bind)仅适用于单向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27041611/

相关文章:

javascript - Knockout.js SimpleGrid 无法正确渲染

javascript - 如何从绑定(bind)处理程序中的 ViewModel 调用函数

javascript - 在 meteor 助手中发出 ajax 请求

JavaScript 推送到子项

html - 无法在CSS中添加div的背景

javascript - 为什么我的代码中未定义单元格名称属性

javascript - 声明后访问对象内部的 javascript 属性

javascript - 如何从 Angular2 的 baseComponent 继承?

javascript - 如何将异步函数包装在 Promise 中?

javascript - 单击链接可以正常工作,但复制粘贴 URL 将不起作用