Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用微模板_Javascript_Jquery_Json_Jquery Templates - Fatal编程技术网

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进行解析,但一定是在某个关键的地方出错了。你帮我省去了很多脑震荡和办公桌上的很多凹痕。非常感谢!!