I definiert folgendes Fenster:Warum kann eine Mitgliedskarte nicht zum Speichern von Symbolleisten verwendet werden?
qx.Class.define('my.Window', {
...
construct: function(caption, icon) {
this.base(arguments, caption, icon);
this.setLayout(new qx.ui.layout.VBox(10));
this.add(new qx.ui.form.renderer.Single(this.getForm('some')));
this.add(new qx.ui.form.renderer.Single(this.getForm('other')));
this.add(this.getToolbar('test')); // This is shown
this.add(this.getToolbar('some')); // This is not shown
this.add(this.getToolbar('other')); // This is not shown
},
members: {
_forms: {},
_toolbars: {},
getForm: function(id) {
if(this._forms[id]) return this._forms[id];
if(id = 'some') this._forms[id] = new Form();
else if(id == 'other') this._forms[id] = new OtherForm();
return this._forms[id];
},
getToolbar: function(id) {
if(id == 'test') {
if(this._tb) return this._tb;
this._tb = new TestToolbar();
return this._tb;
}
else if(id == 'some') this._toolbars[id] = new SomeToolbar();
else if(id == 'other') this._toolbars[id] = new OtherToolbar();
return this._toolbars[id];
}
}
});
Wenn ich das Fenster zeigen, sind die Formen ('einige' und 'andere') dargestellt sind. Andere Elemente wie TestToolbar und eine Liste werden ebenfalls angezeigt. Die anderen Symbolleisten ('test', 'some' und 'other') werden nicht angezeigt.
Ich habe versucht, _toolbars
von einem Objekt in ein Array zu ändern, aber ich habe das gleiche Verhalten.
beachten Sie, dass Sie nicht Mitglied Eigenschaften mit Objekten ... Sie haben todo dies im Konstruktor initialisieren sollte, oder sie werden durch geteilt werden alle Instanzen deiner Klasse ... this._forms = {}; –
Wenn Sie dies zum Spielplatz https://demo.qooxdoo.org/current/playground hinzufügen, wird es für andere einfacher zu sehen, wie Ihr Code fehlschlägt –
Yeshua bitte erstellen Sie ein komplettes Spielbeispiel wie Tobi sagte. Wenn Sie das fehlerhafte Verhalten dort replizieren können, wäre es einfacher herauszufinden, was mit dem Code nicht stimmt. Aber um eine kurze Antwort auf Ihre Frage zu geben: Es ist möglich, Instanzen in Mitgliederzuordnungen zu speichern, sogar Symbolleisteninstanzen. – level420