Communicating with Knockout components

414 views Asked by At

Is there a way to communicate from the parent viewmodel to a KnockoutJS component?

I have a component that contains a bootstrap modal dialog box, to search for customers and return a selected customer. At present, to make the dialog box appear, I pass an observable boolean from the viewmodel in the component's params attribute. To make the dialog appear I set this to true, which invokes the dialog box. I also pass a callback function in params to return the results.

Here is a fiddle demo which shows the concept: http://jsfiddle.net/Quango/5bxbsLt6/

Passing the observable boolean to invoke the dialog doesn't feel right, but it's the only working solution I have. The only other idea I had was to use ko-postbox to create a publish/subscribe function.

It feels like there should be a way to invoke actions, e.g. component.Show() ?

1

There are 1 answers

0
Quango On BEST ANSWER

I think the answer here is that there isn't a better way. To communicate from a parent viewmodel to the component, pass an observable value, and then use that directly or subscribe to changes in the component.

I will put a suggestion on the Knockout github project to consider some form of interface.