在敲除绑定之前将值转换为小写

Convert value into lower case before knockout binding

Demo Here

我用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 中的内容,您有两个选择:

  1. 只读计算:

    model.lowerName = ko.pureComputed(function() { return model.name().toLowerCase(); });
    

    HTML:

    <label data-bind="text:lowerName"></label>
    
  2. 在绑定里做就可以了:

    <label data-bind="text:name().toLowerCase()"></label>