1
我試圖在Typescript中呈現一個模板模板,這不會發生。下面的代碼和瀏覽器錯誤:同步加載HTML模板
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函數成爲同步函數?
的我敢打賭,你執行'變種HTML = this.template(數據)後'require'回調返回;'。由於'模板'尚未分配,它不存在並引發該錯誤。 –
你有一點。我如何使這個同步? – EternallyCurious