同步加载HTML模板

时间:2014-01-30 18:15:07

标签: backbone.js typescript

我正在尝试在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函数成为同步函数?

1 个答案:

答案 0 :(得分:0)

你应该尝试使用jquery-ajax而不是require.js