Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to generate html template dynamically for a viewmodel using knockout
    primarykey
    data
    text
    <p>I am new to knockout framework.</p> <p>I have this viewmodel</p> <pre><code> {"PagesList": [{"QuestionList": [ {"ParentQid":191,"QuestionId":192,"QuestionText":"Enter Question Text","QuestionType":2,"OptionsList": [ {"QuestionId":192,"OptionId":95,"OptionText":"Option1"}, {"QuestionId":192,"OptionId":96,"OptionText":"Option2"} ] }, {"ParentQid":191,"QuestionId":193,"QuestionText":"Enter Question Text","QuestionType":2,"OptionsList": [ {"QuestionId":193,"OptionId":97,"OptionText":"Option1"}, {"QuestionId":193,"OptionId":98,"OptionText":"Option2"} ] }, {"ParentQid":191,"QuestionId":194,"QuestionText":"Enter Question Text","QuestionType":2,"OptionsList": [ {"QuestionId":194,"OptionId":99,"OptionText":"Option1"}, {"QuestionId":194,"OptionId":100,"OptionText":"Option2"} ] } ],"PageId":191,"PageName":0 }] } </code></pre> <p>I want to generate a html template exactly like this.</p> <pre><code> &lt;div&gt; &lt;div id="191" type="page"&gt; &lt;div id="192" type="question" parentqid="191"&gt; &lt;label&gt; Enter ur Question Text&lt;/label&gt; &lt;div&gt; &lt;div id="95" questionid="192"&gt; &lt;input type="radio" id="r_95" /&gt; &lt;label for="r_95"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;div id="96" questionid="192"&gt; &lt;input type="radio" id="r_96" /&gt; &lt;label for="r_96"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id="193" type="question" parentqid="191"&gt; &lt;label&gt; Enter ur Question Text&lt;/label&gt; &lt;div&gt; &lt;div id="97" questionid="193"&gt; &lt;input type="radio" id="r_97" /&gt; &lt;label for="r_97"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;div id="98" questionid="193"&gt; &lt;input type="radio" id="r_98" /&gt; &lt;label for="r_98"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id="194" type="question" parentqid="191"&gt; &lt;label&gt; Enter ur Question Text&lt;/label&gt; &lt;div&gt; &lt;div id="99" questionid="194"&gt; &lt;input type="radio" id="r_99" /&gt; &lt;label for="r_99"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;div id="100" questionid="194"&gt; &lt;input type="radio" id="r_100" /&gt; &lt;label for="r_100"&gt; Option1&lt;/label&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>I am trying like this. ajax call is </p> <pre><code> $.ajax({ url: "/authorsurvey/LoadSurveyQuestions?SurveyId=151", type: 'post', success: function (result) { ViewModel = ko.mapping.fromJS(result); ko.applyBindings(ViewModel, document.getElementById('sMain')); } }); </code></pre> <p>and template html is</p> <pre><code> &lt;script type="text/x-jquery-tmpl" id="layoutpages"&gt; &lt;div data-bind="attr: {id: PageId }" type="pages"&gt; &lt;div class="questiontype" style="height: 40px; padding-top: 4px;"&gt; &lt;label class="questiontype" data-bind="attr: {id: PageId()+'_plabel' }" &gt;Add New Question&lt;/label&gt; &lt;/div&gt; &lt;div data-bind="template: {name:'qtp2', foreach: QuestionList}"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/script&gt; &lt;script type="text/x-jquery-tmpl" id="qtp2"&gt; &lt;div data-bind="attr: {id: QuestionId }" type="pages"&gt; &lt;div class="questiontype" style="height: 40px; padding-top: 4px;"&gt; &lt;label class="questiontype" data-bind="attr: {id: QuestionId()+'_plabel',text:QuestionText()}" &gt;&lt;/label&gt; &lt;/div&gt; &lt;/div&gt; &lt;/script&gt; &lt;div id="sMain"&gt; &lt;div id="pages" data-bind="template: {name:'layoutpages', foreach: PagesList}"&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>is there any shortway to do it ?</p> <p>Thanks for any help ?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload