Loading...
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

[JS Web] Handlebars

Здравейте,

Имам проблем с handlebars темплейта, а той е следния:

Опитвам се да направя много проста if-проверка от сорта ако а === b, но hanldebars-a не го поддържа.

Инсталирах си допълнителен модул handlebars-helpers, но не успях да я регистрирам и да я използвам.

Молбата ми е, ако някой знае как се прави да ми помогне.

Благодаря

0
Module: JS Web 08/06/2017 22:20:32
RoYaL avatar RoYaL Trainer 6849 Точки

Здравей,

Това, което се опитваш да направиш е строго против философията на подобни template engine-и. Преосмисли дали не можеш тази логика да я изнесеш във викащата шаблона функция.

Ако все пак много ти се налага, можеш да си регистрираш простичък собствен помощник чрез функцията registerHelper().

Handlebars.registerHelper('if', function(a, b, options) {
    if(a === b) {
        return options.fn(this);
    }
    return options.inverse(this);
});

Разбира се, подобна помощна функция ще работи само за твоя случай с проверка за равенство.

{{#if a b}}
    <h1> Good! A is equal to B </h1>
{{/if}}

Ако искаш да правиш проверки с функции (equals, etc...) или други оператори, ще трябва да подаваш параметъра за оператор или функция като низ или нещо, което може да се вика (callable).

Handlebars.registerHelper('if', function(a, op, b, options) {
    if (op == '==' && a == b) return options.fn(this);
    if (op == '===' && a === b) return options.fn(this);    
    if (op == '>' && a > b) return options.fn(this);
    if (op == '<' && a < b) return options.fn(this);
    // etc..
    if (typeof op == 'function' && op(a, b) || op.apply(a, b)) return options.fn(this);

    return options.inverse(this);
});

И някакво подобно използване

{{#if a '>' b}}
    <h1> Good! A is greater than B </h1>
{{/if}}

Но наистина помисли дали не може тази логика да се измести там, където й е мястото :)

Успех!

2
03/06/2017 16:13:12
kayleig avatar kayleig -2 Точки

When I believed in forever, and everything would stay the same
Now my heart feel like December when somebody say your name.
 surviv io

-2
advydv avatar advydv 0 Точки

I also faced the same problem thank you for answering.  i want to wish happy Holi in advance 

0
arsal avatar arsal 3 Точки

get help with your cheap WordPress hosting services by Hostcry.com We are the cheapest and reliable WordPress hosting providers in Pakistan, whether you are looking for cheap WordPress hosting for your startup or premium WordPress web hosting for your business, Hostcry can help you get better results, Our award-winning 24/7 support team is always there to help you! We are one of the easiest website hosting platforms to use and remain committed to providing our customers with one of the best hosting solutions on the market.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.