我正在尝试在这些问题中提出的解决方案,但它不起作用
How to pass parameters to a view
How can I pass a parameter into a Backbone.js view?
Backbone.js - passing arguments through constructors
我正在尝试传递额外参数以在我的模板中使用,我读到我传递的所有额外参数我可以在this.options.varName
中访问它们但它对我不起作用。
继承控制器代码:
servicios : function(){
//Crea la colecion de tipos de servicios municipales
//Crea el modelo para dar de alta un nuevo reporte de servicio municipal
var reporteServicioSingle = new ReporteServicioSingle();
//Crea la vista para la pantalla de servicios municipales
var servicios_view = new Servicios({
model : reporteServicioSingle,
collection : this.reportes,
tipos : this.tipos
});
// Carga la vista renderisada y inicializa foundation
$("#app-content").html(servicios_view.render().el);
$(document).foundation();
},
这是我的观看代码:
render: function(){
console.log(this.options.tipos);
this.$el.html(Handlebars.templates.servicios(this.collection));
$(document).foundation();
return this;
},
但Chrome开发者控制台,向我发送一个错误,指出选项没有定义。
Uncaught TypeError: Cannot read property 'tipos' of undefined
谢谢你,抱歉我的英语不好。
答案 0 :(得分:1)
假设您正在使用Backbone 1.1,它不再自动将options
参数自动附加到this.options
,这是一个糟糕的变化(imho)。
您需要在初始化方法中自己扩展options参数:
initialize: function(options) {
this.options = _.omit(options, ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']);
}