Угловой инжектор UI Router Ошибка в моих рамках

0

У меня есть Угловая структура, которую я создаю, что я пытаюсь сделать маршрутизатор агностиком, я хотел бы иметь возможность использовать любой маршрутизатор. До сих пор я тестировал его с маршрутизатором ng, и он работает нормально, но когда я пытаюсь использовать UI-Router, я получаю ошибку инжектора. Я не уверен, помещал ли я его в неправильный модуль, или если это более глубокая проблема. Структура передает маршрут или состояние, в зависимости от того, как я настроил директиву Framework. Я ввел UI-Router в свой основной модуль и ввел $ stateProvider в свой контроллер, который должен его использовать. Я в тупике. Любая помощь будет принята с благодарностью. Вот основной модуль:

 (function () {
"use strict";

   angular.module("app", ["ptFramework", "ui.router", "ngStorage",    "ui.bootstrap"]);
})();

Вот рамочный модуль:

 (function () {
"use strict";
angular.module("ptFramework", [,"ptMenu", "ptDashboard"]);

})();

Вот каркасный контроллер:

 (function () {
"use strict";

angular.module("ptFramework").controller("ptFrameworkController",
['$scope', '$window', '$timeout', '$rootScope', '$stateProvider',
    function ($scope, $window, $timeout, $rootScope, $stateProvider) {

        $scope.isMenuVisible = true;
        $scope.isMenuButtonVisible = true;
        $scope.isMenuVertical = true;

        $scope.$on('pt-menu-item-selected-event', function (evt, data) {
            $scope.stateString = data.state;
            $stateProvider.go(data.state);
            checkWidth();
            broadcastMenuState();
        });

        $scope.$on('pt-menu-orientation-changed-event', function (evt, data) {
            $scope.isMenuVertical = data.isMenuVertical;
            $timeout(function () {
                $($window).trigger('resize');
            }, 0);
        });

        $($window).on('resize.ptFramework', function () {
            $scope.$apply(function () {
                checkWidth();
                broadcastMenuState();
            });
        });
        $scope.$on("$destroy", function () {
            $($window).off("resize.ptFramework"); // remove the handler added earlier
        });

        var checkWidth = function () {
            var width = Math.max($($window).width(), $window.innerWidth);
            $scope.isMenuVisible = (width >= 768);
            $scope.isMenuButtonVisible = !$scope.isMenuVisible;
        };

        $scope.menuButtonClicked = function () {
            $scope.isMenuVisible = !$scope.isMenuVisible;
            broadcastMenuState();

        };

        var broadcastMenuState = function () {
            $rootScope.$broadcast('pt-menu-show',
                {
                    show: $scope.isMenuVisible,
                    isVertical: $scope.isMenuVertical,
                    allowHorizontalToggle: !$scope.isMenuButtonVisible
                });
        };

        $timeout(function () {
            checkWidth();
        }, 0);

    }
]);

})();

Как вы можете видеть, я ввел $ stateProvider как в минимальный массив, так и в функцию. Я не понимаю, почему я получаю эту ошибку

Вот rote.config, где я его использую:

     "use strict";
angular.module('app').config([
    '$stateProvider', function ($stateProvider) {

        $stateProvider
            .state('dashboard',
            {
                url: "/dashboard",
                template: "<h1>dashboard</h1>"
            });

Любой вход был бы весьма признателен.

Спасибо, Джон.

Теги:

1 ответ

1
Лучший ответ

В контроллере:

$stateProvider.go(data.state);

должно быть

$state.go(data.state);

Как следствие, введите $state вместо $stateProvider.

  • 0
    Спасибо, я всегда думал, что вы должны были делать $ stateProvider.state.go. И у меня явно был неправильный синтаксис. Спасибо за помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню