为角色和非模态重用角度控制器

时间:2015-12-17 03:33:31

标签: angularjs controller angular-ui-bootstrap

如何将角度控制器重新用于模态和非模态?我有一个新的业务要求,要求在新页面的选项卡中放置一个模态(只是模态体)中的相同形式。

目前我在模态初始化中使用resolve将变量传递给模态控制器。

模态初始化

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变量?存在一个问题同样存在的问题,但主要答案集中在模态初始化中使用scope而不是resolve

<小时/> 现有问题: How to use the same controller for modal and non-modal form in Angular UI Bootstrap?

1 个答案:

答案 0 :(得分:2)

如果您使用的是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,请务必查看; - )