我正在使用Typescript设置Backbone.View。我想将tagName设置为li,所以我遵循打字稿的TodoMVC示例:https://github.com/tastejs/todomvc/blob/gh-pages/labs/architecture-examples/typescript-backbone/js/app.ts
这是我的代码:
constructor(options?: any) {
this.tagName = 'li';
super(options);
this.template = AppData.template['Query/QueryItemViewTpl'];
}
然而,VS抱怨超级调用:当一个类包含初始化属性或具有参数属性时,'super'调用必须是构造函数中的第一个语句。
所以,我的问题是如何在超级调用之前设置tagName?另外,在初始化之前,我是否可以使用一般方法/模式来设置我的类属性?
由于
编辑:我找到了解决方法:
initialize() {
...
this.setElement($("<li />"));
...
}
我仍然想知道哪种方法最好。
答案 0 :(得分:2)
constructor(options: any = {}) {
options.tagName = 'li';
super(options);
}
如果我没有弄错,只要不影响super()
this
来电前做事。
答案 1 :(得分:1)
tagName是options
参数的成员。可以在视图创建时传递它。
var myView = new MyView({tagName: "li"})
答案 2 :(得分:0)
super(_.extend(options, {className: 'col-md-6', tagName: 'div'}));