0

在一个文件中,我必须 html 元素一个标签和一个输入字段。

<label class="reportNameTextBox" title="Click to edit report name"  data-bind="text: Name() == null || Name().trim().length == 0 ? '[ Click to Enter Report Name ]' : Name(), css: { 'noData': Name() == null || Name().trim().length == 0 }"></label>
<input class="editInput" type="text" data-bind="value: Name" />

两者都绑定到标题为 Knockout 视图模型的报告,该报告具有属性名称

在视图模型中,我试图创建一个计算的 observable,它将字符限制为 255

report.Name = ko.computed(function () {
  return report.Name().substring(0, 255);
});

我遇到的问题是在创建计算的 observable 之前绑定工作正常。在输入字段中输入值将反映在标签中。一旦我创建了 observable。两个字段之间的绑定被破坏但仍保留在输入字段中?

关于我做错了什么的任何建议?

提前致谢

4

1 回答 1

0

您创建了与 observable 同名的计算,因此 ko 覆盖了它。为计算使用另一个名称,例如NameFormatted

report.NameFormatted = ko.computed(function () {
  return report.Name().substring(0, 255);
});
于 2013-09-25T13:30:29.363 回答