Dienstag, Januar 21, 2020

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile…

var TableRow = Marionette.ItemView.extend({
    tagName: "tr",
    template: _.template($(TableTemplates).filter('#tableRow').html()),
    triggers: {
        "click td": "click:td"
    }
});

Sind die Auslöser soll-Blase bis zu den übergeordneten CompositeView?

Vom die docs

Zugriff auf diese [die Ansicht, das Modell und die Sammlung Eigenschaften der Ansicht, dass das Ereignis ausgelöst hat] ermöglicht mehr Flexibilität bei der Verarbeitung von Ereignissen aus mehreren Ansichten. Zum Beispiel, eine Registerkarte Steuerung oder erweitern/reduzieren-widget wie eine panel-Leiste auslösen könnte, die dasselbe Ereignis aus vielen unterschiedlichen Ansichten und behandelt werden mit einer einzigen Funktion.

Wäre nicht die „single-Funktion“ werden in der übergeordneten CompositeView, so dass er reagieren kann der Trigger aus einer seiner untergeordneten ItemViews? Wie funktioniert die CompositeView hören für die ItemView auslösen?

Dank

InformationsquelleAutor user2418171 | 2013-05-24

1 Kommentar

  1. 14

    Ja, Sie sprudeln.

    Das einzige, was zu beachten ist, dass wenn ein ItemView genannt wird, von einem CompositeView oder CollectionView, dass ausgelöst wird, haben itemview vorangestellt, in der Namen, also:

    click:td wäre zu hören in der CompositeView als itemview:click:td

    Dieser string geändert werden kann, wie diese:

    var CV = Marionette.CollectionView.extend({
      itemViewEventPrefix: "some:prefix"
    });
    

    Also der Auslöser wäre some:prefix:click:td

    EDIT: Auf neuere Versionen (nicht sicher über die Start-version), das Präfix itemview wurde geändert, um childview

    Weitere Infos hier:

    Marionette docs

    • Was, wenn Sie wollten CompositeView alle seine Kinder (ItemViews) hören Sie eine Ihrer Veranstaltungen? (Also das Gegenteil von dem, dass die Eltern hören den Kindern)
    • können Sie bitte zeigen Sie in Ihrer Antwort, wie kann ich mir das anhören Veranstaltung ?
    • Ich konnte nicht diese Arbeit, die von Veranstaltungen oder itemEvents-hashes, so dass am Ende ich habe nur Folgendes in meiner Funktion initialisieren: dies.listenTo(this, „itemview:was auch immer“, fn);
    • Sorry, ich bin verwirrt für dieses problem. Ich weiß, die ursprüngliche Frage ist sprudelte. Aber wissen Sie, wie Sie Blase ab? Ich meine, die trigger eine Funktion von der übergeordneten Ansicht compositeview oder collectionview zu itemview.
    • Tut mir Leid keine Ahnung, mein backbone / marionette ist völlig aus meinem Kopf.

Kostenlose Online-Tests