【问题标题】:computed observable not binding to field label from input field计算的 observable 未绑定到输入字段中的字段标签
【发布时间】:2023-03-30 04:05:02
【问题描述】:

在一个文件中,我必须为一个标签和一个输入字段的 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。两个字段之间的绑定被破坏但仍保留在输入字段中?

关于我做错了什么有什么建议吗?

提前致谢

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多