Recently I\'ve separated out ViewModel to a separate JavaScript file.
var Report = (function($) {
var initialData = [];
var viewModel = {
rep
The reason is, that you're indeed invoking the preview function (because writing functionName means referring to the function, writing functionName() means calling it).
So data-bind="click: Report.preview" would be working as expected, but without handing over the parameter.
As the manual states (on a different topic, but this still applies):
If you need to pass more parameters, one way to do it is by wrapping your handler in a function literal that takes in a parameter, as in this example:
or in your case:
data-bind="click: function() { Report.preview('url/to/report') }"
Another solution would be to make preview() return a function (pretty much the same thing actually):
preview: function(path) {
return function() {
// ...
}
}