рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рд╣реЛрдиреЗ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:
{{#switch state}}
{{#case "page1" "page2"}}toolbar{{/case}}
{{#case "page1" break=true}}page1{{/case}}
{{#case "page2" break=true}}page2{{/case}}
{{#case "page3" break=true}}page3{{/case}}
{{#default}}page0{{/default}}
{{/switch}}
рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рдирдХ рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ) рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдмрд┐рд▓реНрдЯрд┐рди рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд▓реНрдХрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЛ рд╣реЗрд▓реНрдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдпрд╣ рдкреГрд╖реНрда рд╡рд░реНрддрдорд╛рди рдореЗрдВ "рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕реНрд╡рд┐рдЪ рд╕рд╣рд╛рдпрдХ" рдХреЗ рд▓рд┐рдП рддреАрд╕рд░рд╛ Google рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдПрдХ рдЦреЛрдЬ рдЗрдВрдЬрди рд╕реЗ рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреНрд░рд┐рд╕ рдореЙрдиреНрдЯреНрд░реЛрдЗрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдПрдХрд▓-рдореВрд▓реНрдп case
рдХреНрд▓реЙрдЬ рдЬреИрд╕реЗ {{#case "page1"}}
:
Handlebars.registerHelper("switch", function(value, options) {
this._switch_value_ = value;
var html = options.fn(this); // Process the body of the switch block
delete this._switch_value_;
return html;
});
Handlebars.registerHelper("case", function(value, options) {
if (value == this._switch_value_) {
return options.fn(this);
}
});
рдпрд╣рд╛рдВ рдПрдХ рдмреЗрд╣рддрд░ case
рд╣реЗрд▓реНрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ {{#case "page1" "page2"}}
рдЬреИрд╕реЗ рд╡реИрд░рд┐рдПрдмрд▓ рдирдВрдмрд░ рд╡рд╛рд▓реЗ рдХреНрд▓реЙрдЬ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:
Handlebars.registerHelper("case", function() {
// Convert "arguments" to a real array - stackoverflow.com/a/4775938
var args = Array.prototype.slice.call(arguments);
var options = args.pop();
var caseValues = args;
if (caseValues.indexOf(this._switch_value_) === -1) {
return '';
} else {
return options.fn(this);
}
});
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛, рдЫреЛрдЯрд╛ рдФрд░ рдкреНрдпрд╛рд░рд╛ред рдореИрдВ рдЕрддреАрдд рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЖрдКрдВрдЧрд╛ред
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ {{#default}} {{/default}}
рдФрд░ {{#case "value" break=true}}
ред
@stevenvachon рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░;)
module.exports = {
switch: function(value, options) {
this._switch_value_ = value;
this._switch_break_ = false;
var html = options.fn(this);
delete this._switch_break_;
delete this._switch_value_;
return html;
},
case: function(value, options) {
var args = Array.prototype.slice.call(arguments);
var options = args.pop();
var caseValues = args;
if (this._switch_break_ || caseValues.indexOf(this._switch_value_) === -1) {
return '';
} else {
if (options.hash.break === true) {
this._switch_break_ = true;
}
return options.fn(this);
}
},
default: function(options) {
if (!this._switch_break_) {
return options.fn(this);
}
}
};
@ рдмрд┐рд▓реА- рд╣рдореЗрдВ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
@jimkoul рдпреЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рд╕реЗрдЯ рдЕрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рд╕реЗрдЯ рдЕрдк (рдЧреБрд▓рдк + рдЧрд▓реНрдк-рдПрдЪрдмреА рдХреЗ рд╕рд╛рде) рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
// ...
.pipe(handlebars({
helpers: 'handlebars/helpers/*.js'
})
// ...
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╣реЗрд▓реНрдкрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХреЗ рдЬреЛ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд░реЗрдВред
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рд╕реНрд╡рд┐рдЪ рдирд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд░ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реНрдг {{assign}}
рд▓рд┐рдЦрдирд╛ рди рдкрдбрд╝реЗред рдЗрд╕ рддрд░рд╣ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рди рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореБрдЭреЗ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджреЗрд╢ рднреА рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдорд╛рдорд▓рд╛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдЪрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрджрд▓ рд░рд╣рд╛ рд╣реЛред
рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╣реИ
"use strict";
Handlebars.registerHelper("switch", function(value, options) {
this._switch_value_ = value;
this._switch_break_ = false;
var html = options.fn(this);
delete this._switch_break_;
delete this._switch_value_;
return html;
});
Handlebars.registerHelper("case", function(value, options) {
var args = Array.prototype.slice.call(arguments);
var options = args.pop();
var caseValues = args;
if (this._switch_break_ || caseValues.indexOf(this._switch_value_) === -1) {
return '';
} else {
if (options.hash.break === true) {
this._switch_break_ = true;
}
return options.fn(this);
}
});
Handlebars.registerHelper("default", function(options) {
if (!this._switch_break_) {
return options.fn(this);
}
});
рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реА рдПрдЪрдмреАрдПрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдпрд╣реА рд╣реИ:
{{#assign "testParam"}}foo{{/assign}}
{{#switch testParam}}
{{#case "boo"}}{{#assign "testParam"}}case1 has been met{{/assign}}{{/case}}
{{#case "foo" break=true}}{{#assign "testParam"}}case2 has been met{{/assign}}{{/case}}
{{#case "tried" break=true}}{{#assign "testParam"}}case3 has been met{{/assign}}{{/case}}
{{#case "bwahahaha" break=true}}{{#assign "testParam"}}case4 has been met{{/assign}}{{/case}}
{{#default break=true}}{{#assign "testParam"}}nothing matched{{/assign}}{{/default}}
{{/switch}}
{{#ttpartial "testSwitch.content"}}
{{testParam}}
{{/ttpartial}}
рдпрд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред
рдпрд╣рд╛рдБ рдореИрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБ:
Handlebars.registerHelper('switch', function(name, value, options) {
this['_switch_value_' + name] = value;
this['_switch_break_' + name] = false;
var html = options.fn(this);
delete this['_switch_break_' + name];
delete this['_switch_value_' + name];
return html;
});
Handlebars.registerHelper('case', function(name, value, options) {
var args = Array.prototype.slice.call(arguments);
var options = args.pop();
var caseValues = args;
if ( this['_switch_break_' + name] || caseValues.indexOf(this['_switch_value_' + name]) === -1) {
return '';
} else {
this['_switch_break_' + name] = true;
return options.fn(this);
}
});
Handlebars.registerHelper('default', function(name, options) {
if ( !this['_switch_break_' + name] ) {
return options.fn(this);
}
});
рд╕реНрд╡рд┐рдЪ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдЦрд╛ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЗрдореНрдмреНрд░рд┐рдХреЗрд╢рди? рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ ...)
рд╕рд╛рде рд╣реА, рдмреНрд░реЗрдХ рд╣рдореЗрд╢рд╛ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╢рд░реНрдд рдкреВрд░реА рд╣реЛрддреА рд╣реИ
рдЕрд░реНрдерд╛рдд:
{{#switch "1" "aaa"}}
{{#case "1" "aaa"}}
{{#switch "2" "bbb"}}
{{#case "2" "bbb"}}ok{{/case}}
{{/switch}}
{{/case}}
{{#default "1"}}nok{{/default}}
{{/switch}}
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рднреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди... рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕реНрд╡рд┐рдЪ each
рднреАрддрд░ рдХрд╛рдо рдХрд░реЗ? рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд░рд╣рддреА рд╣реИрдВред
рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:
{{#each columns}}
{{#switch this}}
{{#case 'foo'}}
{{/case}}
{{#case 'bar'}}
{{/case}}
{{/switch}}
{{/each}}
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:
Uncaught TypeError: Cannot create property '_switch_value_' on string 'name'
рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ this
рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдХреБрдЫ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ switch
рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
Handlebars.registerHelper({
switch: function(value, options) {
return options.fn({
_switch_value_: value,
_switch_break_: false
});
},
//...
});
рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦреЛ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рдиреЗ рдХрд╣рд╛, рдореИрдВ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ options
рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
@ рдмрд┐рд▓реА- @ рдП-рд▓реЗ?
@infinityplusone рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВрдиреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдареАрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, рддрдм рд╕реЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрд╛рд░реА рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдирд┐рд░рд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
@infinityplusone рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрд╡рд┐рдЪ рдХреЛ "рдирд╛рдо" рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
рддреЛ, рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде:
{{#each columns}}
{{#switch "myswitch" this}}
{{#case "myswitch" 'foo'}}
{{/case}}
{{#case "myswitch" 'bar'}}
{{/case}}
{{/switch}}
{{/each}}
рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд╡рд┐рдЪ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП
Handlebars.__switch_stack__ = [];
Handlebars.registerHelper( "switch", function( value, options ) {
Handlebars.__switch_stack__.push({
switch_match : false,
switch_value : value
});
var html = options.fn( this );
Handlebars.__switch_stack__.pop();
return html;
} );
Handlebars.registerHelper( "case", function( value, options ) {
var args = Array.from( arguments );
var options = args.pop();
var caseValues = args;
var stack = Handlebars.__switch_stack__[Handlebars.__switch_stack__.length - 1];
if ( stack.switch_match || caseValues.indexOf( stack.switch_value ) === -1 ) {
return '';
} else {
stack.switch_match = true;
return options.fn( this );
}
} );
Handlebars.registerHelper( "default", function( options ) {
var stack = Handlebars.__switch_stack__[Handlebars.__switch_stack__.length - 1];
if ( !stack.switch_match ) {
return options.fn( this );
}
} );
{{#switch state}}
{{#case "page1" "page2"}}page 1 or 2{{/case}}
{{#case "page3"}}page3{{/case}}
{{#case "page4"}}page4{{/case}}
{{#case "page5"}}
{{#switch s}}
{{#case "3"}}s = 3{{/case}}
{{#case "2"}}s = 2{{/case}}
{{#case "1"}}s = 1{{/case}}
{{#default}}unknown{{/default}}
{{/switch}}
{{/case}}
{{#default}}page0{{/default}}
{{/switch}}
var data = {
state : 'page5',
s : '1'
};
var html = template( data );
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рд╣реИ?
рдмрд╕ рдЕрдЧрд░ рдЖрдк рдХреБрдВрдЬреА рдХреЛ рдореВрд▓реНрдп рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
````рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ = рдлрд╝рдВрдХреНрд╢рди (рдЗрдирдкреБрдЯ, рдХреЗрд╕, рдорд╛рди) {
рдХреЙрдиреНрд╕реНрдЯ рдХреЗрд╕рдЕрд░реЗ = рдХреЗрд╕ред рд╕реНрдкреНрд▓рд┐рдЯ (',')
const valueArray = value.split(',')
рдХреЙрдиреНрд╕реНрдЯ рдЗрдВрдбреЗрдХреНрд╕ = caseArray.indexOf (рдЗрдирдкреБрдЯ)
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпрдЕрд░реЗ [рд╕реВрдЪрдХрд╛рдВрдХ]
};
рд╣реИрдВрдбрд▓рдмрд╛рд░
{{рд╕реНрд╡рд┐рдЪ "рд╡рд╛рдИ" "рд╡рд╛рдИ, рдПрди, рдбреА", "рд╣рд╛рдВ, рдирд╣реАрдВ, рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛"}}
````
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдкреГрд╖реНрда рд╡рд░реНрддрдорд╛рди рдореЗрдВ "рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕реНрд╡рд┐рдЪ рд╕рд╣рд╛рдпрдХ" рдХреЗ рд▓рд┐рдП рддреАрд╕рд░рд╛ Google рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдПрдХ рдЦреЛрдЬ рдЗрдВрдЬрди рд╕реЗ рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреНрд░рд┐рд╕ рдореЙрдиреНрдЯреНрд░реЛрдЗрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдПрдХрд▓-рдореВрд▓реНрдп
case
рдХреНрд▓реЙрдЬ рдЬреИрд╕реЗ{{#case "page1"}}
:рдпрд╣рд╛рдВ рдПрдХ рдмреЗрд╣рддрд░
case
рд╣реЗрд▓реНрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐{{#case "page1" "page2"}}
рдЬреИрд╕реЗ рд╡реИрд░рд┐рдПрдмрд▓ рдирдВрдмрд░ рд╡рд╛рд▓реЗ рдХреНрд▓реЙрдЬ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ: