Is it possible to provide a computed observable an extra parameter?
For example, something like this:
var ViewModel = function(first, last) {
this.firstName = ko.observable(first);
this.lastName = ko.observable(last);
var self = this;
this.fullName = ko.computed(function(separator) {
return self.firstName() + ' ' + self.lastName();
}, this);
};
And then in the html:
<div data-bind="text: fullName(' - ')"></div>
My actual use case is far more complicated, but this is essentially what I'm trying to achieve, pass in a value in the html which is used as part of the computed function.
Failing this is there a way to make a ordinary function which takes parameters behave like a (computed) observable?
You can create a function, which returns an computed variable. You can try something like this.
var ViewModel = function(first, last) {
this.firstName = ko.observable(first);
this.lastName = ko.observable(last);
var self = this;
this.fullName = function(separator){
return ko.computed(function () {
return self.firstName() + separator + self.lastName();}, this);
};
};
<div data-bind="text: ViewModel.fullName('-')"></div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With