2016-03-31 6 views
1

Ich brauche einige vorkompilierte Lenker Vorlagen in meinem Ember Projekt zusammen mit meinen normalen Komponenten und Vorlagen. Ich habe die vorkompilierten Vorlagen in meiner ember-cli-build.js Datei mit app.import() geladen. Die vorkompilierten Vorlagen werden jetzt im Objekt Handlebars.templates angezeigt, das in meiner Datei Ember.TEMPLATES["precompiled-template"] in meiner Datei app.js zwischen der App-Deklaration und App-Initialisierung zugeordnet wurde. Wenn ich das Objekt Ember.TEMPLATES überprüfe, sind die vorkompilierten Vorlagen als Funktionen des Formulars function(context, options) im Gegensatz zu den anderen Vorlagen, die Objekte sind.Mit vorkompilierten Lenker Vorlagen in Ember 2 Projekt

Wenn ich versuche, die vorkompilierte Vorlage zu verwenden, wird nichts angezeigt. Irgendwelche Gedanken?

Edit 1: Ich spreche über kleine ui Vorlagen nicht die ganze Strecke Vorlage, und ich bin bereit, Bindungen zu opfern.

+0

Wie haben Sie die Vorlagen kompiliert? Haben Sie die gleiche Version von ember-template-compiler.js wie ember.js verwendet? – Gaurav

Antwort

0

dachte ich einen Ausweg einen Helfer zu verwenden, um die Lenker Vorlagen in einen String und das Erstellen eines Dokuments Fragment zu konvertieren.

import Ember from 'ember'; 

export function helper(data/*, hash*/) { 
    let precompiledTemplateFunction = Handlebars.templates[data[0]]; 
    return fragmentFromString(precompiledTemplateFunction()); 
} 

function fragmentFromString(strHTML) { 
    return document.createRange().createContextualFragment(strHTML); 
} 

export default Ember.Helper.helper(helper); 

Nutzung: {{helper 'precompiledTemplate'}}

ich importieren Sie die Vorlagen in den glühenden Kohlen-cli-build.js Datei app.import('vendor/path/to/precompiled/template');

ich nicht mit dem Führen in Attributen durch den Helfer beschäftigt haben, aber ich don Ich glaube nicht, dass es so schwer werden wird.

Verwandte Themen