Обновление дочернего шаблона - PullRequest
0 голосов
/ 24 мая 2011

У меня есть мастер шаблон как:

<script type="text/x-jQuery-tmpl" id="baseTmpl">
<tr>
    <td>${Name}</td>
    <td>
        <div id="${ID}">
            {{tmpl "#displayTmpl"}}
        </div>
    </td>
</tr>
</script>  

<script type="text/x-jQuery-tmpl" id="displayTmpl">
    <a id="myLink" href="javascript:changeTmpl(${ID})">${Department}</a>
</script>

<script type="text/x-jQuery-tmpl" id="editTmpl">
    <input type="text" id="text" value="${Department}" />
</script>

<script type="text/javascript">
    function changeTmpl(id) {
        var templateItem = $('#'+id).tmplItem();    
        templateItem.tmpl = editTemplate;
        templateItem.update();
    };
</script>

Приведенный выше код удаляет также все данные tr и когда я обновляю шаблон. Я хочу обновить содержимое только div, а не full tr ​​

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Когда вы делаете это:

var templateItem = $('#'+id).tmplItem(); 

Вы получаете tmplItem элемента div, который фактически является тем же tmplItem для всего, отображаемого этим шаблоном (всего <tr>).

Вы хотите получить доступ к элементу tmplItem внутри div.Это будет работать:

var templateItem = $('#'+id).children(":first").tmplItem(); 
0 голосов
/ 24 мая 2011

В базовом шаблоне идентификатор должен ссылаться на tr, а не на div

<tr div id="${ID}">
....
</tr>

В тот момент, когда вы выбираете var templateItem = $ ('#' + id) .tmplItem ();, он извлекает только div, потому что это то, к чему относится id.

...