2013-06-05 4 views
0

У меня есть следующие функции внутри шаблона нефрита:функция внутри шаблона нефрита неопределенной

-function prettyDate(dateString){ 
    -var date = new Date(dateString); 
    -var d = date.getDate(); 
    -var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; 
    -var m = monthNames[date.getMonth()]; 
    -var y = date.getFullYear(); 
    -return d+' '+m; 
-} 

и это называется следующим код:

td #{prettyDate(c.dateStart)} 

Но я получаю ошибку на том, что line:

undefined is not a function 

Однако это явно функция. Что я делаю не так?

Вот полный шаблон нефрита в случае, если вы заинтересованы:

extends ../layout 

-function prettyDate(dateString){ 
-var date = new Date(dateString); 
-var d = date.getDate(); 
-var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; 
-var m = monthNames[date.getMonth()]; 
-var y = date.getFullYear(); 
-return d+' '+m; 
-} 

block content 
    div#highlighted 
     div.container 
      div.row-fluid.header 
       h2.page-title 
        span Courses 
    div#content 
     div.container.portfolio 
      div.row 
       div.span7.project-photos 
        each c in course 
         div.block.course-snippet 
          h3.block-title 
           span: a(href='/courses/#{c.shortTitle}') #{c.title}: #{c.type} (ages #{c.ageLow}-#{c.ageHigh}) 
          dl 
           dt Dates 
           dd #{c.dateStart} - #{c.dateEnd} 
           dt Tutors 
           dd Names hidden 
           dt Fee 
           dd #{c.fee} 
           dt Course Description 
           dd #{c.shortDescription} 
          a.btn.btn-primary(href="/courses/#{c.shortTitle}") More details 
          |   
          a.btn.btn-primary(href="/booking/#{c.shortTitle}") Book a place now 
       div.span5.sidebar.sidebar-right 
        h3 Full Course Schedule 
        table#courses-table 
         thead 
          tr 
           td Start date 
           td End date 
           td Course 
           td Age range 
           td Fee (£) 
         tbody 
          each c in course 
           tr 
            td #{prettyDate(c.dateStart)} 
            td #{c.dateEnd} 
            td 
             a(href="/courses/#{c.shortTitle}") #{c.title} 
            td #{c.ageLow}-#{c.ageHigh} 
            td #{c.fee} 
+1

Не совсем ответ на вопрос, не можете ли вы просто добавить функцию в app.locals? –

+0

Отлично, спасибо. Я сделал это, и теперь проблема решена. – babbaggeii

ответ

1

Это теперь было решено путем перемещения функции в app.locals в app.js файл:

app.locals.prettyDate = function(dateString){ 
    var date = new Date(dateString); 
    var d = date.getDate(); 
    var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; 
    var m = monthNames[date.getMonth()]; 
    var y = date.getFullYear(); 
    return d+' '+m; 
} 

Эта функция используется в шаблоне, как описано.

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