2014-11-03 5 views
0

Я хочу создать помощник, где я могу сравнивать две даты между собой и в зависимости от того, прошла ли определенная дата для отображения определенных элементов HTMl или нет. У меня есть некоторые данные, которые я получаю от удаленного JSON, который содержит поле «дата». Так, например:HandlebarsJS registerHelper для сравнения двух дат

data: { 
    date: "2014-10-04", 
    event: "some past event, 
}, { 
    date: "2014-12-06", 
    event: "some future event, 
... 

Итак, если дата прошла, я хочу, чтобы либо скрыть HTML или архивировать его, и предстоящие события, я хочу показать, конечно. До сих пор я попытался это:

Handlebars.registerHelper('has_passed', function(dateString, options) { 
    var current_date = moment(dateString).format("YYYY-MM-DD").toUpperCase(); // The current date 
    if(current_date> WHAT HERE???) { 
     return options.fn(this); // if current date is "bigger" than the passed date show html 
    } 
});  

И мой HTML выглядит просто, как это сейчас

{{#has_passed date}} 
    <div> 
     <h1>blablabla</h1> 
    </div> 
{{/has_passed}} 

Очевидно, что это не работает так, может кто-нибудь помочь мне здесь ??

Большое спасибо :-)

ответ

0

Я думаю, вы могли бы использовать функции запроса momentjs

Тогда ваш помощник хотел бы так:

Handlebars.registerHelper("has_passed", function(dateString, options) { 
    if(moment(dateString).isAfter(moment())){ 
    return options.fn(this); 
    } else { 
    return options.inverse(this); 
    } 
}); 

увидеть это fiddler

+0

Мда это похоже, не работает, даже скрипка не запускается – Steve

+0

не знаю, почему она не работает, т работы. проверен на разных компьютерах, и все в порядке. что вы видите в области результатов? –

Смежные вопросы