我使用Backbone Marionette在我的页面上渲染布局。但是,在初始渲染之后,我尝试通过触发(" RefModal:PayRef")发出退款后重新渲染页面上的一个部分模板。不幸的是,我最终得到以下错误: '未捕获的TypeError:无法读取属性'显示'未定义的' 经过一些调试后,我似乎无法再访问totalRegion作为" that.totalRegion"变得不确定因此错误("然而,#34;似乎仍有范围)。
如果有人可以帮助您访问" totalRegion"在第二,第三,第四等触发" RefModal:PayRef"那将是真棒。我希望这是足够的信息继续下去。
views.OrderDTLayout = Marionette.Layout.extend({
template: "orderManagement/bb-total-layout.dust",
className: "bbMgmt",
regions: {
totalRegion: "#bb-total-region",
shippingRegion: "#bb-global-shipping-region"
},
events: {
"click #bb-cancel": "showCancelModal",
"keypress #bb-cancel": "handleShowCancelModal"
},
initialize: function () {
var that = this;
var spinnerMod = mad.App.module("Seller.OrdMgmt.Spinner");
this.loadingController = new spinnerMod.Controller();
mad.App.vent.on("RefModal:PayRef", function (orderModel) {
var totalView = mad.App.Seller.OrdMgmt.OrdTotals.Controller.createPackageOrderTotals(orderModel);
that.totalRegion.show(totalView);
});
//triggered from separate file
mad.App.vent.trigger("RefModal:PayRef", order)
答案 0 :(得分:3)
尝试将此上下文绑定到事件处理程序:
mad.App.vent.on("RefModal:PayRef", function (orderModel) {
var totalView = mad.App.Seller.OrdMgmt.OrdTotals.Controller.createPackageOrderTotals(orderModel);
that.totalRegion.show(totalView);
}, this);
注意此作为最后一个参数传入。然后,您可以访问this.totalRegion.show(view)