How to extend knockout observables to read default value from binding?

Viewed 8412

I have finally found the time to start learning KnockoutJS while building a new MVC4 application. I am trying to figure out the best way to initialize an observable value from a default value that is already set in the view.

This is a contrived example, but I would like to render out a default value for an observable directly to the view as follows:

<input type="hidden" 
       value="@Model.SomeValue"
       data-bind="value: myObservableReference"/>

I know that a default value is normally initialized via:

model.myObservableReference = ko.obervable("SomeValue");

However, I would like to find a way to extend the initialization such that:

model.myObservableReference = ko.obervable();

would read the existing value from the binding if a value exists.

As I have so far managed to keep my KnockoutJS code completely unaware of the razor world, I want to to avoid the sloppiness of:

model.myObservableReference = ko.obervable(@Model.SomeValue);

I am guessing this would be handled via either an extender or custom binder, but if someone could point me in the right direction it would be greatly appreciated.

2 Answers
Related