KnockoutJS如何将textarea值属性绑定到函数

时间:2013-07-09 10:58:26

标签: knockout.js textarea

我有简单的textarea,我想自定义它的文本(比如添加断行),这就是我到目前为止所尝试的:

<textarea rows="5" data-bind="value: function(data) { SetDefaultValue(data); }" />

但我一无所获。

当我检查生成的html我甚至没有找到value属性,我没有JS错误。所以我如何将value的{​​{1}}属性绑定到函数。

Jsfiddle Demo

2 个答案:

答案 0 :(得分:12)

你可以这样做:

<textarea rows="5" type="text" data-bind="value: SetValue(firstName)" />

而不是javascript:

function AppModel() {
this.firstName = "ebram";
this.lastName = "Tharwat";
this.SetValue = function (data) {
    //Do the processing over here
    return data.toUpperCase();
   }
}
ko.applyBindings(new AppModel());

答案 1 :(得分:0)

您需要做的是计算修改textarea值,如此

<textarea rows="5" type="text" data-bind="value:textarea, valueUpdate: 'afterkeydown'" />

function AppModel() {
    var self = this;
    self.textarea = ko.observable('');

    self.SetValue = ko.computed(function(){
        self.textarea(self.textarea().toUpperCase());
    });

}

示例:http://jsfiddle.net/YEp2V/3/