Momentan baue ich eine ember.js Komponente, die 2 Modi hat, anzuzeigen und zu bearbeiten. Wenn sich die Komponente im Anzeigemodus befindet, rendert sie die Vorlagenzeichenfolge, die eine Eigenschaft eines zugeordneten Modells ist. Im Bearbeitungsmodus zeigt die Komponente die Vorlagenzeichenfolge in einem editierbaren Inhalt an. Ich musste die Komponente neu initialisieren, wenn der Modus umgeschaltet wurde, indem 2 Instanzen der Komponente in eine if/else-Anweisung der Vorlage eingefügt wurden. Der folgende Code in meiner Komponente ermöglicht dies:HTMLBars render test
`import layoutDefault from '../templates/components/positionable-element-default'`
.....
layout:Em.computed(->
if @.get('layoutComponent.displayMode')
Ember.HTMLBars.compile(@.get('regionModel.textContent'))
else
layoutDefault
)
Meine Idee für Fehler der Lösung machen die {und} Zeichen der Vorlage Zeichenfolge abzustreifen und dann neu kompilieren nach Benachrichtigung des Benutzers über den Fehler
Ich habe versucht, die Compile-Funktion in einen Versuch Catch setzen, aber nichts ist gefangen, vermutlich, weil es nicht das Kompilieren ist, das Problem, sondern das Rendering.
Nach einigen Recherchen fand ich Why Ember.onerror() not capturing the Assertion Failed error.?, aber es sieht so aus, als ob ich nie in der Lage sein werde, Behauptungsfehler in der Produktion zu fangen. Daher meine Frage ist: Ist es möglich, festzustellen, ob eine Vorlage String richtig oder nicht wird oder nicht? Oder liegt diese Funktionalität außerhalb der Möglichkeiten von ember? Pointers sehr geschätzt :)
Sie sollten * wirklich nicht verschiedene Vorlagen für eine Komponente verwenden! Verwende zwei Komponenten und setze gängige Funktionalität in ein Mixing! Oder verwenden Sie einen '{{if}}' Block in Ihren Vorlagen und rufen Sie Untervorlagen auf. – Lux