2016-11-22 10 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プロパティが UI-ブートストラップにより提供さ$uibModalStack工場で添加してもよい:

$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> 

また、あなたがwindowTopClassまたはwindowClassに$uibModal.open()機能のプロパティを使用することができますので、予めご了承ください、これらのクラスは、トップモーダルレベルに追加されますので、あなたはまた、ユニークなセレクタのためにそれらを使用することができます。 2つの異なるID sおよびCSSクラスを適用する2つのボタンと

plunker:https://plnkr.co/edit/vMw1XtyNOED8PIDP0hWe?p=preview

+0

あなたは間違いなく私の問題を解決しました! :D – Tekerson

0

は「id」属性Ui Bootstrapモーダルポップアップ

を追加する方法はありませんしかし、あなたは$ uibModalを初期化変数を使用して管理することができ、あなたのケースでは、それはVaRの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 
}); 

がうまくいけば、私はあなたの質問に答えている

関連する問題