Knockout.js:如果绑定具有给定值,则设置默认文本

时间:2012-12-14 10:24:31

标签: javascript knockout.js

每当model.id为null时,我想重置输入字段(text='')的值。

如何绑定输入值以响应可观察对象的某个值?看起来像:

<input type="text" data-bind="text: if (model.value == null) { '' }" />

4 个答案:

答案 0 :(得分:5)

您可以在数据绑定属性中使用?运算符:

<input type="text" data-bind="value: model.id() == null ? 'Default Value' : model.value()" />

答案 1 :(得分:0)

在您的视图模型中,属性的初始值如下:

var model.value = ko.observable('');

在HTML中,您不必使用条件表达式

data-bind="text: model.value"

答案 2 :(得分:0)

检查这些代码

<input type="text" data-bind="value: id() == true? 'Value is Red' : value()" />


function viewModel() {
    this.id = ko.observable(true);
    this.value = ko.observable("Value is Green");
}
ko.applyBindings(new viewModel());

http://jsfiddle.net/d4SKr/

答案 3 :(得分:0)

正确的答案应该是创建一个计算的observable来获取标签。

self.getLabel = ko.pureComputed(function() {
    return this.value() === null ? 'Value is red' : value();
});

<input type="text" data-bind="text: getLabel" />