在敲除绑定之前将值转换为小写
Convert value into lower case before knockout binding
我用knockoutjs绑定了一个label。值绑定始终应为小写。虽然它将在 js 模型中保持大写。如何做到这一点?
Javascript
var model = {
name:ko.observable("Test")
}
ko.applyBindings(model);
HTML
<label data-bind="text:name">
您只需要在视图
中使用 toLowerCase
查看:
<div class='liveExample'>
<p> name: <label data-bind='text: name().toLowerCase()'></label></p>
</div>
<b>Original Value:
<pre data-bind="text:ko.toJSON($data,null,2)"></pre>
样本工作 fiddle here
不清楚你想做什么,特别是当值来自来自文本区域时,但你可以使用可写计算来做任何事情:
model.lowerName = ko.computed({
read: function() {
return model.name().toLowerCase();
},
write: function(newValue) {
// ...save this however it is you want to save it...
}
});
HTML:
<input data-bind="value:lowerName">
关于您的更新问题:您的更新完全 改变了问题。如果您不需要元素的更新并且只是 显示 name
中的内容,您有两个选择:
只读计算:
model.lowerName = ko.pureComputed(function() { return model.name().toLowerCase(); });
HTML:
<label data-bind="text:lowerName"></label>
在绑定里做就可以了:
<label data-bind="text:name().toLowerCase()"></label>
我用knockoutjs绑定了一个label。值绑定始终应为小写。虽然它将在 js 模型中保持大写。如何做到这一点?
Javascript
var model = {
name:ko.observable("Test")
}
ko.applyBindings(model);
HTML
<label data-bind="text:name">
您只需要在视图
中使用toLowerCase
查看:
<div class='liveExample'>
<p> name: <label data-bind='text: name().toLowerCase()'></label></p>
</div>
<b>Original Value:
<pre data-bind="text:ko.toJSON($data,null,2)"></pre>
样本工作 fiddle here
不清楚你想做什么,特别是当值来自来自文本区域时,但你可以使用可写计算来做任何事情:
model.lowerName = ko.computed({
read: function() {
return model.name().toLowerCase();
},
write: function(newValue) {
// ...save this however it is you want to save it...
}
});
HTML:
<input data-bind="value:lowerName">
关于您的更新问题:您的更新完全 改变了问题。如果您不需要元素的更新并且只是 显示 name
中的内容,您有两个选择:
只读计算:
model.lowerName = ko.pureComputed(function() { return model.name().toLowerCase(); });
HTML:
<label data-bind="text:lowerName"></label>
在绑定里做就可以了:
<label data-bind="text:name().toLowerCase()"></label>