Javascript 在触发器事件上重新呈现主干.木偶模板
我正在使用主干木偶渲染页面上的布局。但是,在初始呈现之后,我尝试在通过触发(“RefModal:PayRef”)发出退款后重新呈现页面上的一个部分模板。不幸的是,我最终出现了以下错误: '未捕获的TypeError:无法读取未定义的'show'属性' 经过一些调试后,似乎我不再有访问totalRegion的权限,因为“that.totalRegion”变得未定义,因此出现错误(“that”似乎仍然有作用域) 如果有人能在第二、第三、第四等位置帮助访问“totalRegion”,那么触发“RefModal:PayRef”就太棒了。我希望这是足够的信息继续下去Javascript 在触发器事件上重新呈现主干.木偶模板,javascript,backbone.js,scope,marionette,Javascript,Backbone.js,Scope,Marionette,我正在使用主干木偶渲染页面上的布局。但是,在初始呈现之后,我尝试在通过触发(“RefModal:PayRef”)发出退款后重新呈现页面上的一个部分模板。不幸的是,我最终出现了以下错误: '未捕获的TypeError:无法读取未定义的'show'属性' 经过一些调试后,似乎我不再有访问totalRegion的权限,因为“that.totalRegion”变得未定义,因此出现错误(“that”似乎仍然有作用域) 如果有人能在第二、第三、第四等位置帮助访问“totalRegion”,那么触发“RefM
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)
尝试将此的上下文绑定到事件处理程序:
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)
真棒,谢谢您的修复。最后,我不得不通过:mad.App.vent.on(“RefModal:PayRef”,function(orderModel){var totalView=mad.App.Seller.OrdMgmt.OrdTotals.Controller.createPackageOrderTotals(orderModel);this.show(totalView);},this.totalRegion)代码>