2016-11-22 515 views
1

我想知道是否可以将Id属性设置为通过$ uibModal生成的模式,以便稍后我可以通过它的Id捕获通讯元素。我成功地设法产生尽可能多的情态动词,因为我需要他们虽然不是唯一标识用下面的代码:将属性Id设置为uibModal

var modalInstance = $uibModal.open({ 
     templateUrl: 'openChat.html', 
     scope: $scope, 
     backdrop: 'static', 
     keyboard: false, 
     controller: 'openChatModalCtrl', 
     windowClass: 'chat-modal', 
     size: 'sm' 
    }).rendered.then(function() { 
     console.log('there you go!'); 
    }); 

任何帮助将不胜感激。

回答

2

ID财产,可由$uibModalStack工厂通过UI,引导提供添加:

$ctrl.open = function (size, windowTopClass, id) { 
var modalInstance = $uibModal.open({ 
    ariaLabelledBy: 'modal-title', 
    ariaDescribedBy: 'modal-body', 
    templateUrl: 'myModalContent.html', 
    controller: 'ModalInstanceCtrl', 
    controllerAs: '$ctrl', 
    size: size, 
    windowTopClass: windowTopClass, 
    windowTemplateUrl: 'my-window.html', 
    resolve: { 
    projects: function() { 
     return $ctrl.projects; 
    } 
    } 
}).rendered.then(function() { 
    $uibModalStack.getTop().value.modalDomEl.attr('id', id); 
}); 

$uibModalStack.getTop().value.modalDomEl.attr('id', id);线,这样ID可以从模板传递:

<button type="button" 
     class="btn btn-default" 
     ng-click="$ctrl.open('lg', 'my-outer-class2', 'myID2')">Open me2!</button> 

也请注意,您可以使用windowTopClasswindowClass的$uibModal.open()功能特性,这些类也将被添加到顶部模态的水平,所以你也可以用它们独特的选择。

plunker,2个按钮采用2个不同ID S和CSS类:https://plnkr.co/edit/vMw1XtyNOED8PIDP0hWe?p=preview

+0

你肯定解决我的问题! :d – Tekerson

0

没有办法添加“id”属性Ui Bootstrap模式弹出

但是你可以使用变量,它初始化$ uibModal管理,在你的情况下,无功modalInstance

以下是参考其可能帮助例如

//Model Popup for e.g login User 
var loginUser= $uibModal.open({ 
    ..... 
    .... 
}); 

loginUser.result.then(function() { 
//Write your on success 
}, function() { 
    //Write your code when model close event 
}); 

//Other Model Popup for register User 
var registerUser= $uibModal.open({ 
    ..... 
    .... 
}); 

registerUser.result.then(function() { 
//Write your on success 
}, function() { 
    //Write your code when model close event 
}); 

希望我已经回答了你的问题