2017-02-13 2 views
0

In meinem letzten Projekt wählte ich Kolben-Moment statt Moment.js. Es erscheint jedoch weiterhin UndefinedError: 'moment' is undefined.Moment ist undefined in Kolben-Moment

Ich benutzte Fabrik Muster wie folgt aus:

from config import config 
from exts import babel, db, login_manager, mail, moment 

def create_app(config_name): 

    app = Flask(__name__) 
    app.config.from_object(config[config_name]) 

    ... 

    moment.init_app(app) 

    return app 

ich am Ende meiner base.jinja2 Datei füge {{ moment.include_moment() }}, und es ist geladen erfolgreich. Ich schrieb einen components.jinja2, die dieses Stück Code enthält:

{% macro render_file_thumbnail(file) %} 
<div class=""> 
    <hr> 
    <div class="media"> 
     <div class="media-left"> 
      <a href="{{ url_for('people.profile', user_id=file.uploader.id) }}"> 
       <img class="media-object file-th-avatar img-rounded" src="{{ file.uploader.avatar }}" alt="{{ file.uploader.nickname }}"> 
      </a> 
     </div> 
     <div class="media-body"> 
      <h6 class="file-th-header"> 
       <a href="{{ url_for('file.file_display', page_number=1, file_id=file.id) }}"> 
        {{ file.file_name }} 
       </a> 
      </h6> 
      <p> 
       <span class="text-muted fa fa-fw fa-institution"></span> 
       <a href="{{ url_for('course.course', course_id=file.course.id, page_number=1) }}"> 
        {{ file.course.course_name }} 
       </a> 
       <span class="text-muted fa fa-fw fa-pencil"></span> 
       {{ file.author }} 
       <span class="text-muted fa fa-fw fa-download"></span> 
       {{ file.downloaded_times}} {{ _('time(s)') }} 
       <span class="text-muted fa fa-fw fa-clock-o"></span> 
       {{ moment(file.uploaded_time).fromNow(refresh=True) }} 
      </p> 
     </div> 
    </div> 
</div> 
{% endmacro %} 

ich es importieren Vorlagen zu machen, und der Fehler auftaucht. Wenn ich {% include %} anstelle von Marco verwende, ist das Problem behoben! Wie kann ich weiterhin marco verwenden und das Problem gleichzeitig beheben?

Dank!

Antwort

1

Kontext wird nicht an Makro übergeben, wenn Sie es nicht angewiesen haben. Man könnte dieses Problem beheben durch den Import von Makro mit Kontext

{% from "your_macro_file" import render_file_thumbnail with context %} 

verweisen auf doc und this question

+0

Es funktioniert. Vielen Dank! –