Angularjs -检查控制器是否是模态模式



我的angular应用有一个既可以在模态模式下使用也可以在非模态模式下使用的控制器。我想查一下是哪种模式。有人能帮帮我吗?

顺序控制器

    $scope.chooseClient = function() {
        $uibModal.open({
            templateUrl: 'partials/client/edit.html',
            controller: 'ClientEditController',
       }).result.then(function (client) {
            // Modal OK
            if (client) {
                $scope.model.client = client;
            }    
       }, function (status) {
            // Modal cancelado
       });
    };
<<p> 客户端控制器/strong>
.controller('ClientEditController',
    function ($scope, $location) {
        $scope.cancel = function() {
            if (//I would check if modal mode) {
                $scope.$dismiss('cancel');
            } else {
                $location.path("/client/list");
            }    
        };

});

可以传递带有标志的resolve对象。这将迫使你在路由中为控制器传递相同的解析,并将解析注入到控制器。

$scope.chooseClient = function() {
    $uibModal.open({
        templateUrl: 'partials/client/edit.html',
        controller: 'ClientEditController',
        resolve: {
            isModal: true
        }
   }).result.then(function (client) {
        // Modal OK
        if (client) {
            $scope.model.client = client;
        }    
   }, function (status) {
        // Modal cancelado
   });
};

然后检查:

.controller('ClientEditController', function ($scope, $location, isModal) {
    $scope.cancel = function() {
        if (isModal) {
           $scope.$dismiss('cancel');
        } else {
            $location.path("/client/list");
        }    
    };
});

参见docs: $uibModal

相关内容

最新更新