如何将参数传递给Backbone.js视图?

thi*_*ami 2 javascript backbone.js backbone-views

我正在尝试将参数传递给Backbone.js视图,但我无法做到这一点.

我有一个Backbone视图如下:

var DataTypesView = Backbone.View.extend({
    events:{
        'click .datatype': 'add'
    },
    initialize: function(){
        console.log(this.magic);
        this.render();
    },
    render: function(){
        console.log('printing template');
        console.log(this.templateString);

                    etc.
}});
Run Code Online (Sandbox Code Playgroud)

后来,我把这个视图装箱如下:

        dataTypesView = new DataTypesView({magic:true,el:$('#dataViewSpace'),templateString:'#template'});
Run Code Online (Sandbox Code Playgroud)

它不起作用.我不明白的是为什么的el作品就好了(我可以用用jQuery访问this.$el.),但this.magicthis.templateString都是不确定的...

有没有办法可以按照我上面尝试的方式将参数传递给视图?

在相关的说明 - 有什么方法可以传递渲染功能?我最初尝试传递一个渲染函数(并从骨干视图类中删除),但是当它不起作用时我尝试传递简单的数据类型而不是...我假设无论需要做什么来传递一个我的第一个问题的参数将用于传递函数.

thi*_*ami 6

编辑 - 显然这个答案在较新版本的Backbone中不起作用.

我想到了!T'非常简单......只需快速检查一下Backbone.js文档......应该先完成.

传入时的以下参数会自动分配给视图(您可以使用它来访问它们this.variableName):model,collection,el,id,className,tagName和attributes

可以访问所有其他变量this.options.variableName.

从我上面的例子中,我可以magic通过使用this.options.magic而不是使用来访问this.magic.

好极了!