MaxSter
@MaxSter
Software engineer

Почему не срабатывает DI?

Имеется 2 контроллера.
app.controller("adminController", ["$scope", "$modal", "productsService", "ordersService",  function ($scope, $modal, productsService, ordersService) {
        ......
        $scope.openAddProductModal = function (size) {
            var modalInstance = $modal.open({
                templateUrl: '/modal/addproduct',
                controller: 'addProductController',
                size: size
            });
            
            modalInstance.result.then(function (selectedItem) {
                $scope.selected = selectedItem;
            });
        };
    }]);

Контроллер модального окна
app.controller('addProductController', ["$scope", "$modalInstance",  "productsService", function ($scope, $modalInstance, productsService) {
    $scope.ok = function () {
        $modalInstance.close();
    };
    
    $scope.cancel = function () {
        $modalInstance.dismiss('cancel');
    };
    
}]);

DI не работает, Unknown provider: $modalInstanceProvider <- $modalInstance <- addProductController. Подкажите решение. Благодарю!
  • Вопрос задан
  • 2299 просмотров
Решения вопроса 1
Может быть потому что вы дважды объявили контроллер для вьюшки? Ну то есть в файле /modal/addproduct есть что-то вроде
<div ng-controller="addProductController"></div>

и в методе open указывается контроллер. Если это так - то попробуйте убрать директиву ng-controller из вьюшки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы