我想通过敲除2.3.0来更改texterea的高度
我将texterea的值绑定到“ FileData”可观察字段 并希望将texterea rows属性更改为“ FileData”中的行数
值绑定工作正常,但attr不起作用
var self = this;
self.FileData = ko.observable("");
self.lineBreakCount = function(str) {
/* counts \n */
try {
return ((str.match(/[^\n]*\n[^\n]*/gi).length)) + 1;
} catch (e) {
return 0;
}
}
self.buttonClick = function () {
$.get(url, { })
.success(function (serverData) { self.FileData(serverData);})
}
<button type="button" data-bind="click: buttonClick">Click Me</button>
<textarea readonly="readonly" data-bind="value: FileData, attr: { 'rows': lineBreakCount(FileData)}"></textarea>
答案 0 :(得分:1)
您的lineBreakCount
期望有一个string
,但是您正在传递一个包含{em>一个observable
的{{1}}。
要解决此问题,请在绑定(string
)或方法(lineBreakCount(FileData())
)中解开可观察对象
str().match
var VM = function() {
var self = this;
self.FileData = ko.observable("");
self.lineBreakCount = function(str) {
/* counts \n */
try {
return ((str.match(/[^\n]*\n[^\n]*/gi).length)) + 1;
} catch (e) {
return 0;
}
}
self.buttonClick = function() {};
};
ko.applyBindings(new VM());