计算的observable不绑定到输入字段的字段标签

时间:2013-09-25 13:24:07

标签: javascript knockout.js

在文件中,我必须使用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" />

两者都绑定到具有属性Name

的Knockout viewmodel标题报告

在viewmodel中我试图创建一个将字符限制为255的计算observable

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

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

关于我做错了什么建议?

提前致谢

1 个答案:

答案 0 :(得分:0)

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

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