backbone.js - Backbone Typescript kan inte sätta tagName
Jag håller på att sätta upp Backbone.View med Typescript. Jag vill sätta tagName till li, så jag följer TodoMVC-exemplet på typescript: https://github.com/tastejs/todomvc/blob/gh-pages/labs/architecture-examples/typescript-backbone/js/app.ts
Här är min kod:
constructor(options?: any) {
this.tagName = 'li';
super(options);
this.template = AppData.template['Query/QueryItemViewTpl'];
}
Men VS klagar på super-anropet: Ett 'super'-anrop måste vara det första uttalandet i konstruktorn när en klass innehåller initialiserade egenskaper eller har parameter-egenskaper.
Så, min fråga är hur sätter jag tagName innan super-anropet? Finns det också ett allmänt sätt/mönster som jag kan använda för att ställa in min klass egenskap innan jag initialiserar den?
Tack
Redigera: Jag hittade denna lösning:
initialize() {
...
this.setElement($("<li />"));
...
}
Jag vill fortfarande veta vilket som är det bästa sättet att göra detta.
Svar #1
constructor(options: any = {}) {
options.tagName = 'li';
super(options);
}
Om jag inte har fel, kan du göra saker före super()-anropet så länge det inte påverkar this
Svar #2
tagName är en medlem av options-argumentet. Kan skickas vid vy-skapande.
var myView = new MyView({tagName: "li"})
