![]() |
Jag försöker hitta ett lämpligt sätt att separera ut HTML kod från javascript
kod vid JSON anrop. Nu är lösningen den att man skapar html via DOM i själva loopen, typ: // Process the JSON data returned from the server var messages = []; try { messages = YAHOO.lang.JSON.parse(o.responseText); } catch (x) { alert("JSON Parse failed!"); return; } YAHOO.log("PARSED DATA: " + YAHOO.lang.dump(messages)); // The returned data was parsed into an array of objects. // Add a P element for each received message for (var i = 0, len = messages.length; i < len; ++i) { var m = messages[i]; var p = document.createElement('p'); var message_text = document.createTextNode( m.company_name + ' says "' + m.company_name + '"'); p.appendChild(message_text); msg_section.appendChild(p); } Men det jag vill göra på ett bra sätt är att ha HTML markupen för denna loop separerat bort från javascript koden.. Har någon sett en bra lösning på detta? |
Det där ser ändå relativt smärtfritt ut. Hur vill du skriva ut det?
|
Ja skulle alltså vilja ha en html mall som man utgår ifrån, typ:
for (var i = 0, len = messages.length; i < len; ++i) { var m = messages[i]; template.add("id", m.company_id); template.add("name", m.company_name); } och så kanske man har en en tabell som är definierad i själva sidan, så att man binder data från json till en html mall Så det blir en renare separation.. <table id="template"> <tr> <th>id</th> <th>name</th> </tr> <tr> <td id="company_id"><td> <td id="company_name"><td> </tr> </table> Kan fundera ut en lösning.. men om det finns nån som gjort det så.. |
Kan du få rådatan som XML istället för JSON? Då kan du använda en XSLT-template för att transformera texten så som du vill ha den.
|
Alla tider är GMT +2. Klockan är nu 00:59. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson