gpt4 book ai didi

angularjs - 从 json 文件/http 创建状态

转载 作者:行者123 更新时间:2023-12-01 12:39:31 25 4
gpt4 key购买 nike

我有一个后端,它生成一个包含最重要页面信息的 json 文件。我想加载这个 json 文件,并根据文件中的数据构建相应的状态。我无法将 $stateProvider 注入(inject)到 .run 或 .controller 中,也无法将 $http 注入(inject)到 .config 中,所以我感觉有点迷茫。

那么问题来了。如何加载 json 文件、遍历数据并基于此数据构建状态?

快速编辑:如果我缺少提供必要的信息,请告诉我,我会尝试改进问题。

最佳答案

我试图解决类似的问题并创建了 UI-Router Extras“ future 状态”。 future 状态试图解决其他问题,例如使用 RequireJS 的延迟加载、整个未加载模块的占位符以及通过书签 URL 路由到未加载的占位符。

这是一个演示如何在您的用例中使用 future 状态的代码:http://plnkr.co/edit/Ny7MQcmy35dKeEjbw57d?p=preview

我尝试使用 stackoverflow 片段运行器,但遇到了问题,所以这里是不可运行的代码粘贴。

JS:

// Code goes here

var app = angular.module("jsonstates", ["ct.ui.router.extras"]);

app.config([ '$stateProvider', '$futureStateProvider',
function($sp, $fsp ) {
var futureStateResolve = function($http) {
return $http.get("states.json").then(function(response) {
angular.forEach(response.data, function(state) {
$sp.state(state);
})
})
}
$fsp.addResolve(futureStateResolve);
console.log($fsp);
}]);

app.controller("someCtrl", function() { })

HTML:

<!DOCTYPE html>
<html>

<head>
<script data-require="angular.js@1.2.25" data-semver="1.2.25" src="https://code.angularjs.org/1.2.25/angular.js"></script>
<script src="https://rawgit.com/angular-ui/ui-router/0.2.11/release/angular-ui-router.js"></script>
<script src="https://rawgit.com/christopherthielen/ui-router-extras/0.0.10/release/ct-ui-router-extras.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>

<body ng-app="jsonstates">
<h1>Hello Plunker!</h1>
<a href="#/top">Top state</a> <a href="#/top/nested">Nested state</a>
<div ui-view></div>
</body>

</html>

JSON:

[
{
"name": "top",
"url": "/top",
"controller": "someCtrl",
"template": "<h1>top state</h1><div ui-view></div>"
},
{
"name": "nested",
"parent": "top",
"url": "/nested",
"controller": "someCtrl",
"template": "<h1>nested state</h1><div ui-view></div>"
}
]

关于angularjs - 从 json 文件/http 创建状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301037/

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