我有几个Javascript函数可以连接我设置为变量 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>
我尝试了几种变体(this.c和c),我也尝试了不同的变量,但是我无法正确显示URL。
c 在控制台中标记为未定义,并且网址最终类似于:http://127.0.0.1/xampp/py2/undefined而不是实际的 c ,类似于{ {3}}
有没有办法正确传递参数?或者我应该在.tmpl文件中进行连接?
以下是我作为参考使用的内容:https://rally1.rallydev.com/slm/rally.sp#/2735190513d/detail/userstory/4599269614。
答案 0 :(得分:0)
rishimaharaj,
jqoteapp
方法的第三个参数用于在每次调用的基础上更改模板标记(默认情况下为<% ... %>
)。如果您需要将其他数据传递到模板,您有两种选择:
c
成为一个全局变量(我不建议这样做)将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
lamda的固有属性data
:
<tr id="row">
... <a href="<%= data.c %>"><%= this.FormattedID ...
</tr>
的问候,
aefxx