Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΡΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ΅ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°: ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π² ΡΡΡΠΎΠΊΠ΅ 3:
{{#each people}}
ΠΠΆΠΈΠ΄Π°Ρ "ID", ΠΏΠΎΠ»ΡΡΠΈΠ» "undefined"
@ustun , Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΡΡΠΎ. ΠΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ jsfiddle.
@wagenet Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π±ΡΡΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΡΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ #each Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΡΠ»ΠΈ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π΅Π³ΠΎ Π² jsfiddle ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Chrome, Π²Π²Π΅Π΄Ρ ΡΠ΅ΠΊΡΡ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ΅ΠΊΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ html (), Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΡΠ΅Π°Π½Ρ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π²ΠΎΠΆΡ ΡΠ°Π±Π»ΠΎΠ½ Π²ΡΡΡΠ½ΡΡ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
template = $ ("# ΡΠ°Π±Π»ΠΎΠ½-Π»ΡΠ΄ΠΈ-Π²-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ
"). html ()
"
{{ #each people }}
<li>{{ this }}</li>
{{ /each }}
"
t = Handlebars.compile(template);
function (context, options) {
if (!compiled) {
compiled = compile();
}
return compiled.call(this, context, options);
}
t({"people": ['foo','bar']})
Error: Parse error on line 3: {{ #each people }}<li> ---^ Expecting 'ID', got 'undefined'
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΡΡΠ½ΡΡ:
template = "{{#each people }}<li>{{ this}}</li>{{/each}}"
"{{#each people }}<li>{{ this}}</li>{{/each}}"
t = Handlebars.compile(template);
function (context, options) {
if (!compiled) {
compiled = compile();
}
return compiled.call(this, context, options);
}
t({"people": ['foo','bar']})
"<li>foo</li><li>bar</li>"
ΠΠ±ΡΠ΅Π·ΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° html () ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
Π’Π°ΠΊ,
template = $.trim($("#people-in-clients-template").html())
"
{{ #each people }}
<li>{{ this }}</li>
{{ /each }}
"
t = Handlebars.compile(template);
function (context, options) {
if (!compiled) {
compiled = compile();
}
return compiled.call(this, context, options);
}
t({"people": ['foo','bar']})
Error: Parse error on line 3: {{ #each people }}<li> ---^ Expecting 'ID', got 'undefined'
ΠΠΎΡ ΠΎΠΆΠ΅, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
template = "{{#each people }}<li>{{ this}}</li>{{/each}}"
"{{#each people }}<li>{{ this}}</li>{{/each}}"
/[\x00-\x1F]/.test(template)
false
template = $("#people-in-clients-template").html()
"
{{ #each people }}
<li>{{ this }}</li>
{{ /each }}
"
/[\x00-\x1F]/.test(template)
true
ΠΡΠΎ ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°:
Π° = [10, 10, 123, 123, 32, 35, 101, 97, 99, 104, 32, 112, 101, 111, 112, 108, 101, 32, 125, 125, 10, 123, 123, 32 , 116, 104, 105, 115, 32, 125, 125, 10, 123, 123, 32, 47, 101, 97, 99, 104, 32, 125, 125, 10, 10]
b = "";
for (i = 0; i <a.length; i ++) {
b + = String.fromCharCode (a [i]);
}
Ρ = ΡΠ°Π±Π»ΠΎΠ½ ({"Π»ΡΠ΄ΠΈ: ['ΡΡ', 'Π±Π°Ρ']});
ΠΠΎΡ jsfiddle:
Π₯ΠΎΡΠΎΡΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π½ΠΎ ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠ±Π΅Π» ΠΏΠ΅ΡΠ΅Π΄}}.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ
ΠΎΡΡ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° {# each people}}.
source = $("#people-in-clients-template").html();
source = source.replace(/ }}/g, "}}");
source = source.replace(/{{ /g, "{{");
ΠΠΎΡ ΠΎΠΆΠ΅, ΠΏΠ»ΠΎΡ Π°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠΈΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π₯ΠΎΡΠΎΡΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π½ΠΎ ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠ±Π΅Π» ΠΏΠ΅ΡΠ΅Π΄}}.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΎΡΡ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° {# each people}}.