gpt4 book ai didi

javascript - Angularjs:请求数据之前的条件?

转载 作者:行者123 更新时间:2023-11-27 23:57:38 27 4
gpt4 key购买 nike

注意:这是一个动态应用程序。

我正在使用 Angular 路线,所以我决定在加载 Controller 之前调用数据,我有多个页面和一个路线[动态路由],我能够为每个页面返回不同的数据,具体取决于它是 slug,但是无论 slug 是什么,都会返回一些数据,因此我返回了一些返回 true 或 false 的数据的键。

我要求的是我是否能够检查 key 是否为真,并在加载 Controller 之前请求它的数据? 完全前端

// Routes
app.config(function($routeProvider, $locationProvider){
$routeProvider
.when('/:name', {
templateUrl: '/views/main.html',
controller: 'mainCtrl',
resolve: {
// RESOLVE THE MAIN DATA
page: function(srvLibrary,$route, $rootScope) {
return srvLibrary.getPage($route.current.pathParams.name);
},
// RESOLVE THE PROJECTS DATA
projects: function(srvLibrary,$route, $rootScope) {
return srvLibrary.getProjects();
}
}
});
});

// USING FACTORY TO RESOLVE DATA
app.factory('srvLibrary', ['$http','$rootScope', '$interval' ,'$route', function($http,$rootScope, $interval, $route) {
return {
getPage: function(slug) {
// THIS IS THE MAIN PAGE PROMISE [DYNAMIC ROUTED]
var promise = $http({
method: 'GET',
url: baseUrl + '/api/v1/page.json',
params: {menu_slug: slug}
})
promise.then(
function(data) {
return data;
},
function(error) {
return false;
},
function(progress) {
// report progress
});
return promise;
},
// PROJECTS DATA
getProjects: function() {
var promise = $http({
method: 'GET',
url: baseUrl + '/api/v1/portfolio.json'
});
promise.success(function(data) {
return data;
});
return promise;
},
}
});

// MAIN CONTROLLER
app.controller('mainCtrl', function($scope, page){
$scope.data = page.data;
$scope.projects = projects.data;
});

我能够根据使用 Controller 自身的 key 返回数据,但是存在一些延迟,数据当然会在 Controller 完全加载后加载,某些功能[插件]可能无法工作,以及其他问题。

感谢您的阅读

最佳答案

您可以监听 $route 事件之一,例如 $routeChangeSuccess ,该事件在您的 resolve 依赖项可用后触发。

https://docs.angularjs.org/api/ngRoute/service/ $路线

关于javascript - Angularjs:请求数据之前的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115606/

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