Knockout js - 获取可观察的字符串长度

bzl*_*ies 6 javascript knockout.js

这似乎是一个简单的问题,但我似乎无法弄明白

我只需要显示可观察的字符串的长度.我已尝试使用ko.computed()函数实现结果,如下面的代码所示,但它总是返回零.

摆弄一个例子

HTML

<div id="vm"> 
    <h2>The title is: <span data-bind="text: title"></span></h2>
    <h2>The length is: <span data-bind="text: title.length"></span></h2>
    <h2>Length from computed: <span data-bind="text: titleLength"></span></h2>
    <input data-bind="value: title, valueUpdate: 'keyup'"/>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

function VM() {
    var self = this;
    self.title = ko.observable();
    self.titleLength = ko.computed(function() {
        return self.title.length;
    });
}

ko.applyBindings(VM(), document.getElementById('vm'));
Run Code Online (Sandbox Code Playgroud)

Cla*_*edi 5

您的计算版本几乎是正确的.改变它

return self.title().length; // <-- Notice () after title
Run Code Online (Sandbox Code Playgroud)

DEMO