我正在尝试在Typescript中将模板呈现为模板,但这种情况并未发生。这是代码和浏览器错误:
class QuestionView extends Backbone.View{
template: (data:any) => string;
constructor(options?:any){
var question = this;
require(["text!add-new-question.html"],
function(html) {
question.template = _.template(html);
}
);
_.bindAll(this, "render");
}
render(){
var data = this.model.toJSON();
var html = this.template(data);
return this;
}
}
错误:
Uncaught TypeError: Object #<QuestionView> has no method 'template' Main.ts:49
QuestionView.render Main.ts:49
(anonymous function) Main.ts:57
更新
正如下面所指出的那样,这是因为在渲染完成执行后需要函数返回。我尝试使用setInterval()
运行,但它确实有用。如何使require函数成为同步函数?
答案 0 :(得分:0)
你应该尝试使用jquery-ajax而不是require.js