Професионална програма
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 6846 Точки

Здравей,

Това, което се опитваш да направиш е строго против философията на подобни 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