Как передать дополнительные переменные и параметры в jQote2? - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть пара функций Javascript, которые объединяют URL, который я установил для переменной c .Затем я пытаюсь передать эту переменную в jQote2:

$.get("emptyReq.tpl", function(tmpl,c) {
  $("#reqs").jqoteapp(tmpl, result, c);
});

В emptyReq.tmpl я делаю следующее:

<tr id="row">
  <td name="id" class="id"><a href="<%=this.c%>"><%= this.FormattedID %></a></td>
  <td name="name" class="name"><%= this._refObjectName %></td>
  <td name="state" class="state"><%= this.ScheduleState %></td>
  <td name="owner" class="owner"></td>
</tr>

Я пробовал несколько вариантов (это.c и c) и я также пробовал разные переменные, но я не могу заставить URL отображаться правильно.

c помечен как неопределенный в консоли, иURL в конечном итоге выглядит примерно так: http://127.0.0.1/xampp/py2/undefined вместо фактического c , что-то вроде https://rally1.rallydev.com/slm/rally.sp#/2735190513d/detail/userstory/4599269614

Есть ли способ правильно передать параметры?Или я должен выполнить конкатенацию в самом файле .tmpl?

Вот что я использовал в качестве ссылки: Ссылка jQote .

1 Ответ

0 голосов
/ 24 ноября 2011

rishimaharaj,

Третий параметр метода jqoteapp используется для изменения тега шаблона (<% ... %> по умолчанию) для каждого вызова. Если вам нужно передать дополнительные данные в шаблон, у вас есть два варианта:

  1. Сделать c глобальной переменной (хотя я бы не рекомендовал)
  2. Скопируйте значение c в параметр data (рекомендуется):

    Обратите внимание, что при копировании необходимо учитывать тип вашего данные шаблонов, т.е. один объект обрабатывается не так, как массив объекты!

    $.get("emptyReq.tpl", function(tmpl,c) {
        var data;
    
        // 'result' seems to be a global var, thus making a copy is a good idea.
        // Copying needs to take into account the type of 'result'
    
        if ( Object.prototype.toString(result) === '[object Array]' ) {
            data = result.slice(0);
        } else {
            data = [$.extend({}, result)];
        }
    
        // Now it is safe to add 'c' to the wrapping array. This way
        // we won't override any homonymous property
        data.c = c;
    
        // Call the processing with our local copy
        $("#reqs").jqoteapp(tmpl, data);
    });
    

    Как только вы измените это, вы сможете получить доступ к c через шаблоны Свойство Ламды data:

    <tr id="row">
        ... <a href="<%= data.c %>"><%= this.FormattedID ...
    </tr>
    

С уважением,
aefxx

...