Javascript 如何使用微模板
由于某种原因,我不能让这辆车去上班。我已经读过了,并且可以让这个例子起作用,但是它是针对一个非常简单的对象的。(例如,Javascript 如何使用微模板,javascript,jquery,json,jquery-templates,Javascript,Jquery,Json,Jquery Templates,由于某种原因,我不能让这辆车去上班。我已经读过了,并且可以让这个例子起作用,但是它是针对一个非常简单的对象的。(例如,var data={fname:“fred”};),然而,当我尝试使用我更复杂的对象时 {"order":{"name":"TRADEMARK WHEEL COMPANY","sales_order_id":"18278","order_date":"05 \u2044 15 \u2044 2012","due_date":"05 \u2044 21 \u2044 2012","
var data={fname:“fred”};
),然而,当我尝试使用我更复杂的对象时
{"order":{"name":"TRADEMARK WHEEL COMPANY","sales_order_id":"18278","order_date":"05 \u2044 15 \u2044 2012","due_date":"05 \u2044 21 \u2044 2012","order_number":"1213140","reference":"21192D\/35546","order_description":"BICICLETTE","ship_name":"ADAMS","ship_address1":"1919 W RANDOLPH ST.","ship_address2":"","ship_city":"CHICAGO","ship_state":"IL","ship_postal_code":"60606","ship_country":null,"ship_via":"FEDEX GROUND","tracking_number":null,"package_contents":null,"freight":"0.00","taxable":"0.00","nontaxable":"748.88","sales_tax":"0.00"},"line_item":[{"description":"RED ONE","quantity":"2.00","sell_price":"349.44"},{"description":"FRONT GEAR","quantity":"2.00","sell_price":"15.00"},{"description":"5th GEAR","quantity":"2.00","sell_price":"10.00"}]}
试着像这样访问它
<script>
(function () {
var submitStr="test string of data";
$.ajax({
type: "POST",
url: "getJSON.php",
data: submitStr,
success: function (data) {
console.log(data);
var generatedText = tmpl("order_detail", data);
var elem = document.getElementById("elemId");
elem.innerHTML = generatedText;
}
});
}());
</script>
<script id="order_detail" type="text/html">
<div>
Name:<%=data.order.name%> ID:<%=data.order.sales_order_id%><hr/>
<%for(var i=0;i<data.line_item.length;i++) {%>
description: <%= data.line_item[i].description %><br/>
quantity: <%= data.line_item[i].quantity %><br/>
price: <%= data.line_item[i].sell_price %><hr/>
<%}%>
</div>
</script>
(功能(){
var submitStr=“测试数据字符串”;
$.ajax({
类型:“POST”,
url:“getJSON.php”,
资料来源:submitStr,
成功:功能(数据){
控制台日志(数据);
var generatedText=tmpl(“订单详细信息”,数据);
var elem=document.getElementById(“elemId”);
elem.innerHTML=generatedText;
}
});
}());
姓名:ID:
1.在$.ajax
success回调success:function(data)
中,您将数据作为JSON字符串获取,必须先将其解析为对象,然后再将其传递给tmpl
函数
$.ajax({
type: "POST",
url: "getJSON.php",
data: submitStr,
success: function (data) {
console.log(data);
data = JSON.parse(data);
var generatedText = tmpl("order_detail", data);
var elem = document.getElementById("elemId");
elem.innerHTML = generatedText;
}
});
2.删除模板中的所有数据前缀。使用console.log(数据)可以得到什么代码>我将对象像json字符串一样打印出来。console.log(data)/{“order”:{“name”:“商标车轮公司”、“销售订单id”:“18278”、“订单日期”:“05\u2044 15\u2044 2012”、“到期日期”:“05\u2044 21\u2044 2012”、“订单号”:“1213140”、“参考号”:“21192D\/35546”、“订单描述”:“Bicilete”、“船舶名称”:“ADAMS”、“船舶地址1”:“1919 W RANDOLPH ST.,“ship_address2:”,“ship_city:“CHICAGO”,“ship_state:“IL”,“ship_postal_code:“60606”,“ship_country:”空,“ship_via:”联邦快递
错误仍然存在未捕获引用错误:数据未定义
@thomas这是当数据
是字符串时Chrome将记录的内容,如果它是一个对象,Chrome将用箭头显示对象
。我已经更新了第二点的答案。使用[此函数]()控制台.log(数据)
给了我[object object]完美的工作方式。非常感谢。我确实尝试过使用jquery parsejson进行解析,但一定是在某个关键的地方出错了。你帮我省去了很多脑震荡和办公桌上的很多凹痕。非常感谢!!