这个主题已经被问过,但我不知道在我的情况下该怎么做。
Using AngularJS 1.0.5:
在显示视图“登录”之前,我想获取一些数据并在未从 AJAX 请求加载数据时延迟视图呈现。
这是主要代码。这是好方法吗?
angular.module('tfc', ['tfc.config', 'tfc.services', 'tfc.controllers']).config([
'$routeProvider', '$locationProvider', '$httpProvider',
function($routeProvider, $locationProvider, $httpProvider) {
$routeProvider.when('/login', {
templateUrl: 'views/login.html',
controller: "RouteController",
resolve: {
data: function(DataResolver) {
return DataResolver();
}
}
});
}
]);
module_services = angular.module("tfc.services", []);
module_services.factory("DataResolver", [
"$route", function($route) {
console.log("init");
return function() {
// Tabletop is a lib to get data from google spreadsheets
// basically this is an ajax request
return Tabletop.init({
key: "xxxxx",
callback: function(data, tabletop) {
console.log("[Debug][DataResolver] Data received!");
return data;
}
});
};
}
]);
AngularJS 的要点是你可以加载模板和所有内容,然后等待数据加载,这意味着是异步的。
您的视图应该使用 ng-hide、ng-show 来检查控制器的范围,以便当范围中的数据更新时,视图将显示。您还可以显示一个微调框,这样用户就不会感觉网站崩溃了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)