在kickout.js中,我有一个非常标准的字段,如下所示:

<label data-bind="text: JobTitle"></label>

我想要的是如果文本值为null,则在此处指定默认值,例如“未指定职务”。

这可以在敲门js中完成吗?

谢谢。

最佳答案

因此,我猜测您需要一个真实的默认值,而不仅仅是一个占位符文本。这是使用扩展器完成此操作的一种方法。

ko.extenders.defaultIfNull = function(target, defaultValue) {
    var result = ko.computed({
        read: target,
        write: function(newValue) {
            if (!newValue) {
                target(defaultValue);
            } else {
                target(newValue);
            }
        }
    });

    result(target());

    return result;
};

var viewModel = function() {
   this.someValue = ko.observable().extend({ defaultIfNull: "some default" });
};

ko.applyBindings(new viewModel());

http://jsfiddle.net/madcapnmckay/aTMpp/

希望这可以帮助。

关于data-binding - kickout.js-数据绑定(bind)文本默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10577078/

10-13 08:54