This is a migrated thread and some comments may be shown as answers.

kendo.observable (modelView) field with default value from template engine

4 Answers 309 Views
MVVM
This is a migrated thread and some comments may be shown as answers.
Stoyan
Top achievements
Rank 1
Stoyan asked on 31 Mar 2015, 02:52 PM
Hello,

I have a modelView
       
var viewModel = kendo.observable({
    logoAlt: null
});

The field "logoAlt" is bound to

<input data-bind="value:logoAlt"/>

I would like the value of the input to be passed from the server through template engine and update "logoAlt" with it.
<input value="{{valueFromServer}}"/>

I've tryed the following, but of course it doesn't work:
<input  data-bind="value:logoAlt" value="{{valueFromServer}}"/>

4 Answers, 1 is accepted

Sort by
0
Stoyan
Top achievements
Rank 1
answered on 31 Mar 2015, 03:04 PM
I can do this like this, but I find it complicated:

<input  id="alt" data-bind="value:logoAlt" data-defaulvalue="{{valueFromServer}}"/>

var defaulvalue = $('#alt').data('defaulvalue');
var viewModel = kendo.observable({
    logoAlt: defaulvalue
});
0
Boyan Dimitrov
Telerik team
answered on 02 Apr 2015, 12:49 PM

Hello Stoyan,

In order to achieve the desired functionality I would suggest initiating an jQuery ajax request to the server with the value typed in the input element.  In the success method you can update your model-view logoAlt field using the set method


Regards,
Boyan Dimitrov
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
0
Stoyan
Top achievements
Rank 1
answered on 06 Apr 2015, 10:00 AM

For my project ajax was not an option.

I found a workaround. The steps are as follows:

1. Initialise empty View-Model

var viewModel = kendo.observable();

2. Get the form input name and corresponding values

var inputsNameValuePairs = $('form').serializeArray(); // returns array of JSONs

3. Iterate inputsNameValuePairs and set the pairs in View-Model

$.each(inputsNameValuePairs, function(index, item){
    viewModel.set(item.name, item.value);
});

4. Final step is to bind View-Model to View

kendo.bind($('#someId'), viewModel);

0
Boyan Dimitrov
Telerik team
answered on 08 Apr 2015, 06:47 AM

Hello Stoyan,

Thank you for sharing your solution with the community. 

Regards,
Boyan Dimitrov
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
Tags
MVVM
Asked by
Stoyan
Top achievements
Rank 1
Answers by
Stoyan
Top achievements
Rank 1
Boyan Dimitrov
Telerik team
Share this question
or