如何在角度/ angularstrap中为模态创建新范围

时间:2014-07-01 17:28:05

标签: javascript angularjs typescript angular-strap

我正在尝试创建一个服务,该服务将显示某些模态及其相应的模板,同时自动将按钮连接到供应商事件处理程序。我遇到的问题是,当我的模态弹出时,应该包含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'
        });
    }

1 个答案:

答案 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.handleConfirmClickscope.handleCancelClick。两者都应该在控制台上打印功能主体。如果是这样,您的错误不在创建新范围