This seems to be a simple issue but I can't seem to figure it out
I just need to display the length of a string that is observable. I have tried achieving the result with a koputed()
function as you can see in the code below, but it always returns zero.
Fiddle with an example
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 puted: <span data-bind="text: titleLength"></span></h2>
<input data-bind="value: title, valueUpdate: 'keyup'"/>
</div>
JavaScript
function VM() {
var self = this;
self.title = ko.observable();
self.titleLength = koputed(function() {
return self.title.length;
});
}
ko.applyBindings(VM(), document.getElementById('vm'));
This seems to be a simple issue but I can't seem to figure it out
I just need to display the length of a string that is observable. I have tried achieving the result with a ko.puted()
function as you can see in the code below, but it always returns zero.
Fiddle with an example
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 puted: <span data-bind="text: titleLength"></span></h2>
<input data-bind="value: title, valueUpdate: 'keyup'"/>
</div>
JavaScript
function VM() {
var self = this;
self.title = ko.observable();
self.titleLength = ko.puted(function() {
return self.title.length;
});
}
ko.applyBindings(VM(), document.getElementById('vm'));
Share
Improve this question
edited Aug 20, 2014 at 19:57
Weafs.py
23k9 gold badges57 silver badges79 bronze badges
asked Aug 20, 2014 at 19:50
bzliesbzlies
1411 gold badge2 silver badges8 bronze badges
1 Answer
Reset to default 5Your puted version is almost correct. Change it by this
return self.title().length; // <-- Notice () after title
DEMO