2013-07-09 40 views
2

我有簡單textarea,我想自定義的文本(如添加斷裂線),這是我迄今爲止嘗試:KnockoutJS如何綁定文本域值屬性的功能

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

,但我什麼也沒得到。

當我檢查生成的HTML我甚至沒有找到值屬性,我沒有JS錯誤。所以我怎麼可以綁定value屬性textarea的功能。

Jsfiddle Demo

+0

什麼錯誤?你可以做一個小提琴嗎? – Damien

+0

@Damien用演示更新了我的問題 –

+0

'function(data)'中的數據應該是什麼? – nemesv

回答

10

你可以這樣說:

<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()); 
+0

工作完美..感謝您的幫助 –

+0

我歡迎... :) –

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/

+0

謝謝你的回答,但我需要執行的功能,當我通過價值,或綁定功能價值屬性 –

+0

我不'瞭解你想要達到的目標。試圖更好地解釋 –

+0

我有價值來自視圖模型,我想在它作爲值傳遞它之前進行處理..這個處理取決於該視圖模型的其他屬性 –