当然可以,它在文档中的示例 1:分解用户输入标题下进行了演示。
function MyViewModel() {
this.firstName = ko.observable('Planet');
this.lastName = ko.observable('Earth');
this.fullName = ko.computed({
read: function () {
return this.firstName() + " " + this.lastName();
},
write: function (value) {
var lastSpacePos = value.lastIndexOf(" ");
if (lastSpacePos > 0) { // Ignore values with no space character
this.firstName(value.substring(0, lastSpacePos)); // Update "firstName"
this.lastName(value.substring(lastSpacePos + 1)); // Update "lastName"
}
},
owner: this
});
}
ko.applyBindings(new MyViewModel());
在这个例子中,write 回调通过将传入的文本拆分为“firstName”和“lastName”组件来处理传入的值,并将这些值写回底层的 observables。
html:
<p>First name: <span data-bind="text: firstName"></span></p>
<p>Last name: <span data-bind="text: lastName"></span></p>
<h2>Hello, <input data-bind="value: fullName"/>!</h2>
编辑:
快速分解
- 阅读:您实现的代码以返回将在计算的 observable 中显示的内容
- write:写回底层可观察对象的内容。