/ / aký je rozdiel medzi chunk.write a chunk.render - dust.js

aký je rozdiel medzi chunk.write a chunk.render - dust.js

Videl som to,

chunk = chunk.write("<li>").render(bodies.block, context.push(items[i])).write("</li>n");

Predtým, ako som videl tento kód, render ako niečo podobné flush, a write ako niečo podobné ako "napísať do vyrovnávacej pamäte", prirodzene vedie k kódu, ako je uvedené nižšie.

for loop
chunk.write("something")
end for loop

chunck.render();

Ale ako vidíte v prvom kóde, render sa dostáva medzi zápisy. Môže niekto vysvetliť rozdiel medzi týmito dvoma funkciami.

@JAiro:

Po prečítaní odpovede som skúsil nižšie uvedený kód:

temaplate: You have {render} {write}

dáta:

{
"name": "Mick",
"render": function(c,ct,b){
chunk.render("Rendered {~n}");
},
write:function(c,ct,b){
chunk.write("Written {~n}")
}
}

Očakávaný výkon:

    you have Rendered

Written {~n}

Upozorňujeme, že {~n} po interpretácii slova "Rendered", ale {~ n} po "Písomné" nie je interpretované.

Ale skutočný výstup nie je rovnaký ako očakávanývýkon. Mohol by ste poslať jsfiddle, ktorý mi pomôže pochopiť. Skutočný výstup je prázdny reťazec, ktorý tiež naznačuje, že by mohlo dôjsť k chybe v kóde.

odpovede:

1 pre odpoveď č. 1

Na chunk.write Metóda píše reťazce priamo do medzipamäte.

Na druhej strane, chunk.render rieši premenné obsiahnuté v argumentu a potom píše výsledný reťazec do medzipamäte.

Don "t musieť prepísať napísať a render funkcie v kontexte.

Dovoľte mi ukázať vám, ako to funguje.

šablóna

Hello {name}!, how are you?

Prach zostavuje šablóne previesť v JavaScriptu. Po zostavení šablóny budete získať niečo ako:

return chk.write("Hello ").reference(ctx.get("name"), ctx, "h").write("! how are you?");

Ako môžete vidieť na "Ahoj" a "ako sa máš?", prachu používa chunk.write pretože vie, čo by malo tlačiť. Však prach Copak "t vedieť hodnotu {name} kým sa dostane kontexte (JSON).

Z toho dôvodu sa používa chunk.reference, pretože to bude mať v budúcnosti vyriešiť hodnotu názov premennej.Prach sa chystá získať Hodnota name z JSON údajov.

Môžete si prečítať viac o dust.js tu:

http://linkedin.github.com/dustjs/wiki

A môžete vidieť pracovné príklady a vy skúste tu:

http://linkedin.github.com/dustjs/test/test.html