我正在尝试创建一个服务,该服务将显示某些模态及其相应的模板,同时自动将按钮连接到供应商事件处理程序。我遇到的问题是,当我的模态弹出时,应该包含handleConfirmClick和handleCancelClick的范围都为null(使用Batarang查看此内容)。
我正在使用typescript,我调试了底层的JS代码,并且在创建模态时看到modalScope.handleConfirmClick不为null,但在创建模式后,模态范围的处理函数都为null。
public createAndShowConfirmCancelModal(header:string, content:string, okClick:() => void, cancelClick?:() => void)
{
var modalScope = <any>this.$rootScope.$new();
modalScope.handleConfirmClick = okClick;
modalScope.handleCancelClick = () => {
if (cancelClick != null)
{
cancelClick();
}
modalScope.$hide();
};
// modalScope.();
this.$modal({
scope: modalScope,
show: true,
content: content,
title: header,
container: '.contain',
template: 'js/pages/components/confirmCancelModal.html'
});
}
答案 0 :(得分:0)
您显示的代码有效。
$ modal只使用$new
https://github.com/mgcrea/angular-strap/blob/master/src/modal/modal.js#L38创建传入的modalScope的副本,并且应在handleConfirmClick
上包含函数handleCancelClick
和__proto__
。< / p>
此时在浏览器开发工具中放置一个断点:https://github.com/mgcrea/angular-strap/blob/master/src/modal/modal.js#L39并打印scope.handleConfirmClick
和scope.handleCancelClick
。两者都应该在控制台上打印功能主体。如果是这样,您的错误不在创建新范围。