我想在模板下划线中使用一个函数。我的.javascript文件中创建的函数如下:
<script type="text/javascript">
function en2per(str){
str = typeof(str) == "number" ? str.toString() : str;
var output = '';
var num = 1728;
for (var i = 0, len = str.length; i < len; i++) {
if(str.charCodeAt(i)>=48 && str.charCodeAt(i)<=57)
output += String.fromCharCode(str.charCodeAt(i)+num);
else
output += str[i];
}
return output;
};
var order_temp = _.template($("#order_template").html());
var order_json = {orders:data.orders};
$('#full .pages').append(order_temp(order_json));
</script>
这是我的模板下划线:
<script type="text/template" id="order_template">
<ul class="item_list">
<% _.each(orders,function(item){%>
<li class="cells">
<div class="part number">
<span class="spans"><%= en2per(item.counter)%></%> // I get error this place...
</div>
</li>
<% });%>
</ul>
</script>
运行我的代码时出现错误...在我的模板中强调此功能 en2per()未找到!!! 现在我想在我的模板中调用此函数。
答案 0 :(得分:2)
执行的顺序是:
1)需要声明en2per
函数和下划线模板(任何订单都应该有效)
2)jQuery需要使用模板
3)下划线模板需要使用en2per
函数
这一切都通过确保en2per
函数不在$(document).ready()
处理程序中来解决,并确保使用模板的jQuery(因此模板需要加载)是:< / p>
<script type="text/template" id="order_template">
....
</script>
<script>
function en2per(str) {
....
}
$(document).ready(function() {
var order_temp = _.template($("#order_template").html());
var order_json = {orders:data.orders};
$('#full .pages').append(order_temp(order_json));
});
</script>
这里是JSFiddle