【问题标题】:Reuse Angular Controller for Modal and Non-Modal重用模态和非模态的角度控制器
【发布时间】:2015-12-17 03:33:31
【问题描述】:

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

目前我在模态初始化中使用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?

【问题讨论】:

    标签: angularjs controller angular-ui-bootstrap


    【解决方案1】:

    如果您使用的是 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,你一定要检查一下 ;-)

    【讨论】:

    • 我目前没有使用 ui-router 但一直认为这是我需要采取的路径。
    • 感谢$uibModalInstance: function () { return null; } 解决方法:) ... +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2017-06-23
    • 2010-12-11
    • 2016-08-27
    相关资源
    最近更新 更多