javascript - knockout JS : property specific css binding expression

标签 javascript knockout.js

请参阅以下 jsFiddle 链接:http://jsfiddle.net/7gS6N/ .

我正在尝试通过 knockout js 执行一些简单的字段级验证。

点击“添加错误”模拟为名称字段添加错误。

当错误被添加到 Errors 集合时,css 绑定(bind)会触发,表达式计算为真并应用 css 类。

这很好,但是我怎样才能使我的 css 绑定(bind)表达式属性特定呢?

css: { error: Errors().length > 0 }

我只希望 Name 字段显示 css 类。

谢谢!

最佳答案

你需要一个额外的可观察对象,所以不用

self.Name = ko.observable("John")

你用

self.Name = new Field("John Smith");

其中一个 Field 具有以下结构

function Field(value) {
  var self = this;
  self.value = ko.observable(value);
  self.hasError = ko.observable(false);
}

你的标记看起来像

<div data-bind="with:Name">
  <input type="text" data-bind="value: value, css: { error: hasError }" />
</div>

这种策略被称为装饰对象;在这种情况下,我将您的变量“包装”在一个类中,但您可以从那里添加 labelerrorMessage 和您希望所有这些特定字段都具有的其他属性。最后,我更新了你的 fiddle here与工作示例。

关于javascript - knockout JS : property specific css binding expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204622/

相关文章:

Javascript:添加的功能不会出现在父对象上

javascript - 过滤 Javascript 数组以检查所有嵌套对象中的特定值

javascript - Array.includes 无法按预期使用 html 文件上传和 localforage

javascript - KnockoutJS 嵌套映射

javascript - 有没有人有 "start"和 "duration"匹配视频持续时间的 XML 字幕的视频时间算法示例?

javascript - 从以编程方式生成的图像中获取像素数据

javascript - 在 observableArray Knockout JS 中切换值?

javascript - foreach 绑定(bind)中的 Owl 轮播和 knockout.js 绑定(bind)

knockout.js - 使用 Knockout foreach 绑定(bind)嵌套数组

html - select 中的每个选项具有多个值的 knockout 绑定(bind)