[英]How to create a new scope in angular / angularstrap for a modal
我正在嘗試創建一個服務,該服務將顯示某些模式及其相應的模板,並自動將按鈕掛接到供應商事件處理程序。 我遇到的問題是,當我的模式彈出時,應該包含handleConfirmClick和handleCancelClick的作用域都為空(使用Batarang進行了查看)。
我正在使用打字稿,並且調試了底層的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'
});
}
您顯示的代碼是有效的。
$ modal僅使用$new
創建您在modalScope中傳遞的副本: https : //github.com/mgcrea/angular-strap/blob/master/src/modal/modal.js#L38,並且應包含handleConfirmClick
和handleCancelClick
函數在__proto__
。
此時在瀏覽器開發工具中放置一個斷點: https : //github.com/mgcrea/angular-strap/blob/master/src/modal/modal.js#L39並打印scope.handleConfirmClick
和scope.handleCancelClick
。 兩者都應在控制台上打印功能主體。 如果是這樣,您的錯誤不是在創建新范圍 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.