虽然我查看了answers here,但我还是无法在页面加载时触发openModal()
功能。
在我的控制器中,我有代码(下面的问题),允许openModal()
通过ng-click指令或在Chrome控制台中输入以下内容时触发罚款:
angular.element($0).scope().openModal()
我的问题是当我试图在页面加载时有条件地打开模态时。我目前的代码是:
$scope.openModal = function (size) {
modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'pageBuilder',
size: 'lg',
resolve: {
items: function () {
return $scope.chosenDeploymentSchedule;
}
}
});
};
angular.element(document).ready(function () {
// $scope.openModal();
console.log('Hello World');
});
我得到了Hello World
打印,但是当我尝试取消注释$scope.openModal();
时,我会打印出无限循环的undefined
+ Hello World
。
答案 0 :(得分:1)
我不知道这个解决方案对于这个问题是否为时已晚,但可能对某些人有用。
创建正常的bootstrap模式
$scope.myDialog = function () {
$uibModal.open({
templateUrl: 'templatefolder/modal.html',
backdrop: 'static',
windowClass: 'modal',
size: 'lg',
controller: function ($scope, $uibModalInstance) {
$scope.cancel = function () {
$uibModalInstance.dismiss();
};
}
});
};
在html页面中调用模式,如<span ng-init="myDialog()"></span>
就是这样。这对我有用,我希望它也适用于某人。
答案 1 :(得分:0)
您可以直接在控制器中定义它的位置下方调用$scope.openModal()
。它会立即打开模态。
答案 2 :(得分:0)
虽然仍然无法直接从同一个控制器中调用它,但我的解决方案是添加另一个方法,该方法从视图中的ng-init
调用:
$scope.launchModalConditionally = function(){
if(!$scope.gotCredentials){
$scope.openModal();
}
};