我如何重新使用角度控制器来实现模态和非模态?我有一个新的业务要求,要求在新页面中的选项卡中放置一个模态(只是模态体)中已存在的相同形式.
目前我在模态初始化中使用resolve将一个变量传递给modal的控制器.
模态初始化
var modalInstance = $uibModal.open({
templateUrl: 'myModal.html',
controller: 'myCtrl',
resolve: {
foo: function() { return scope.fooFromScope; },
}
});
现有控制器
myApp.controller('hrpoConductReviewModalCtrl', ['$scope', 'foo', function($scope, foo) {
...
}]);
目前我的模态中没有使用$uibModalInstance.
有没有办法从另一个控制器内初始化控制器并传递foo变量?有一个问题是同一个问题,但主要答案集中在模态初始化中使用范围而不是解决.
现有问题:
How to use the same controller for modal and non-modal form in Angular UI Bootstrap?
最佳答案 如果您使用的是ui-router,您可以使用ui-router的解析:
$stateProvider
.state('conductReview', {
url: '/review',
templateUrl: '/js/templates/review.html',
controller: 'hrpoConductReviewModalCtrl',
resolve: {
foo: function() { return scope.fooFromScope; },
$uibModalInstance: function () { return null; } // <- workaround if you want to use $uibModalInstance in your controller.
}
})
如果你不使用ui-router,你一定要看看它;-)