gpt4 book ai didi

javascript - 我的框架中的 Angular UI 路由器注入(inject)器错误

转载 作者:行者123 更新时间:2023-12-03 08:29:02 25 4
gpt4 key购买 nike

我正在构建一个 Angular 框架,我试图使其与路由器无关,我希望能够使用任何路由器。到目前为止,我已经使用 ng router 对其进行了测试,并且工作正常,但是当我尝试使用 UI-Router 时,我收到了注入(inject)器错误。我不确定我是否将其放置在错误的模块中,或者这是否是一个更深层次的问题。框架广播路由或状态,具体取决于我如何设置 Framework 指令。我已将 UI-Router 注入(inject)到我的主模块中,并将 $stateProvider 注入(inject)到需要使用它的 Controller 中。我很困惑。任何帮助将不胜感激。这是主要模块:

 (function () {
"use strict";

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

这是框架模块:

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

})();

这是框架 Controller :

 (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 注入(inject)到 minsafe 数组和函数中。我不明白为什么会收到此错误

这是我使用它的 rote.config:

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

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

任何意见都将不胜感激。

谢谢,约翰。

最佳答案

在 Controller 中:

$stateProvider.go(data.state);

应该是

$state.go(data.state);

因此,注入(inject) $state 而不是 $stateProvider

关于javascript - 我的框架中的 Angular UI 路由器注入(inject)器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com