Ember Upgrade: Wie sieht der Plan für Mixins, insbesondere bufferedProperty, aus?

Ich arbeite an COMPATIBILITY: move thumbnail selector to Glimmer & new Component modal system by merefield · Pull Request #32 · merefield/discourse-tc-topic-list-previews · GitHub

Ich habe bufferedProperty auf einem Modal Controller verwendet, bin aber jetzt gezwungen, zu einer Komponente zu wechseln, um die neue Komponent-Modal-Architektur zu unterstützen.

Ich glaube jedoch, dass ich bufferedProperty immer noch verwenden muss (ich aktualisiere einen Wert in den Topic-Metadaten).

Dies löst jedoch einen Fehler aus:

export default class AwesomeModalComponent extends Component.extend(
  bufferedProperty("model")
) {

… und ich erhalte TypeError: n.default.extend is not a function

Ich habe einige Beispiele für dieses Muster gefunden, aber nur für Controller:

Es wäre gut zu wissen, was der Plan hier für das “TODO” ist.

3 „Gefällt mir“

Die einfachste kurzfristige Antwort lautet: Verwenden Sie weiterhin eine klassische Komponente für Ihr Modal (d. h. keine Glimmer-Komponente). Klassische Komponenten unterstützen weiterhin Mixins.

Wenn Sie bei einer klassischen Komponente bleiben (d. h. der Strategie, die in Converting modals from legacy controllers to new DModal component API beschrieben wird), erhalten Sie das sauberste 1:1-Upgrade vom alten Controller-basierten System.

Langfristig müssen wir Alternativen für einige unserer Kern-Mixins finden. Aber soweit sind wir noch nicht.

4 „Gefällt mir“

Nur um nachzufassen und Danke zu sagen. Ich habe genau diesen Ansatz verwendet und alles zum Laufen gebracht - ich habe alles nach Glimmer verschoben, bis auf das Modal selbst, das den Mixin benötigte.

Übrigens scheint bufferedProperty viel Magie zu vollbringen und scheint keinen der Standardregeln bezüglich der Weitergabe von Änderungen zu folgen!

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.