gpt4 book ai didi

angularjs - 为什么在配置中没有触发解析?

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

我在模块中有这个配置和 Controller :

(function () {
"use strict";
angular.module("dashboard", ["ui.router",
"clients",
"sites",
"regions",
"beddingTypes",
"geomindCommon",
])
.config([
"$stateProvider",
function ($stateProvider) {
$stateProvider
.state("home", {
url: "/Menu",
templateUrl: "app/dashboard/templates/dashboard.tmpl.html",
resolve: {
client: ['$window', 'dashboardService', 'config', clientMapResolver],
}
});
}
])
.controller('dashboardController', ['$scope', 'config',
function ($scope, config) {
$scope.currClientId = config.currClient.id;
}
])

function clientMapResolver($window, dashboardService, config) {
var layoutId = $window.parent.parent.parent.location.search.split('=')[1];
}
})();

如您所见,我在 config 中定义了解析。状态。
但是永远不会触发解析和 clientMapResolver函数永远不会被调用。

更新:
也许这会导致问题:

该项目是SPA项目。仪表板是主要模块。
我注意到在我的索引页面中我有这样的声明:
<body ng-app="dashboard" ng-strict-di>
<div ng-controller="dashboardController">
<div class="sizeResponsive navbar navbar-green navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</div>
</div>
</div>

知道为什么永远不会触发解析吗?

最佳答案

你的问题是你的 resolve block 没有映射到正确的数据类型。 resolve block 的目的是定义与此 View 关联的 Controller 的依赖关系。您没有在此代码中声明您的 Controller - 您需要定义一个与解析关联的 Controller (请参阅 the documentation )。完成此操作后,应将 resolve 用于应用程序中未在其他地方定义的任何服务。所以你不需要解析 "$window"或类似的东西,只需要不存在的特殊值。所以"client"将是注入(inject)到您的控件中的依赖项的名称(匹配字符串“client”),并且与“client”关联的值是注入(inject)的内容。所以它需要映射到一个字符串(现有服务的名称)或一个函数,该函数将返回您想要注入(inject)的值。请参阅文档:https://github.com/angular-ui/ui-router/wiki#resolve .

请注意,我也不鼓励任何类似于 $window.parent.parent.parent.location.search 的内容。 .如果你需要这样做,你真的有太多的 iframe。

关于angularjs - 为什么在配置中没有触发解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45339308/

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