knockout.js - 数据绑定文本默认值 [英] knockout.js - data-bind text default value

查看:131
本文介绍了knockout.js - 数据绑定文本默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < label data-bind =文字:JobTitle>< / label> 

如果文本值为空,我想要的是在这里指定一个默认值,例如No Job Title Specified。



这可能在knockout.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());

返回结果;
};

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

ko.applyBindings(new viewModel());

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



希望这有帮助。


In knockout.js I have a very standard field that looks like this:

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

What I'd like is to have a default value specified in here if the text value is null, for example "No Job Title Specified".

Is this possible to do in knockout.js?

Thanks.

解决方案

So I'm guessing you want a real default value and not just a placeholder text. Here's a way to do that with an extender;

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/

Hope this helps.

这篇关于knockout.js - 数据绑定文本默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆