angularjs首先获取应用程序数据
angularjs fetch app data firstly
我的应用程序中有几个视图&我想让用户在这些视图之间切换,而不会因为从后端服务器获取数据而延迟所需数据在$routeProvider中定义我如何以优雅的方式交付解决方案,该解决方案将在角度加载后从服务器获取数据,并使这些数据可用于$routeProvider
我的想法不起作用,因为:
- 我可以把代码放在一些主控制器中,但$routeProvider中没有$scope
- 我可以把获取数据的代码放在一些Factory类中,如下所示:
APP.factory('DataFactory', function($q,KAS){
return {
data:new Array(),
fetchData:function(){
var albums=$q.defer();
var artists=$q.defer();
var genres=$q.defer();
albums.resolve(KAS.api({action:'get_albums'}));
artists.resolve(KAS.api({action:'get_artists'}));
genres.resolve(KAS.api({action:'get_genres'}));
var data=$q.all([albums.promise, artists.promise, genres.promise]);
data.then(function(retv){
angular.forEach(retv, function(value, key){
data[key]=(value.data.response);
});
});
},
getData:function(){
return data;
}
}
});
但是getData函数没有访问数据数组-我不能引用数据属性。事实上,这是显而易见的,因为我正在返回函数/对象的数组。但我把它贴在上面是为了了解我真正想做什么。
我如何以优雅的方式交付解决方案,该解决方案将在角度加载后从服务器获取数据,并使这些数据可用于$routeProvider
您正在创建变量(var data
),而不是分配给对象的属性。JavaScript认为您使用的是一个名为data的变量,但实际上您引用的是返回的对象的属性数据。
APP.factory('DataFactory', function($q,KAS){
var myFactory = {
data:new Array(),
fetchData:function(){
var albums=$q.defer();
var artists=$q.defer();
var genres=$q.defer();
albums.resolve(KAS.api({action:'get_albums'}));
artists.resolve(KAS.api({action:'get_artists'}));
genres.resolve(KAS.api({action:'get_genres'}));
myFactory.data = $q.all([albums.promise, artists.promise, genres.promise]);
myFactory.data.then(function(retv){
angular.forEach(retv, function(value, key){
this.data[key]=(value.data.response);
});
});
},
getData:function(){
return myFactory.data;
}
};
return myFactory;
});
相关文章:
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 正在从ruby应用程序中的数据库中获取数据
- web浏览器中的离线应用程序存储数据并在之后上传
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 如何使用Node.js/MongoDB在AngularJS应用程序中获取特定于目标的数据
- 来自应用程序状态的Jquery数据表源
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- 如何在angularjs应用程序中解析Drupal JSON数据
- 如何在Windows Phone 8.1应用程序中在C#和Javascript之间传递数据或通信
- 在 Angular 2.0 应用程序中存储应用程序数据的正确方法是什么?
- PHP/AAJAX多用户应用程序-数据正在以某种方式丢失
- windows 8由于Javascript应用程序中的xml缓存而无法更新应用程序数据
- 谷歌驱动器API应用程序数据文件夹,是真的那么困难
- 在应用程序数据中存储和检索WinJS.Binding.List
- 我可以在浏览器之间通过Javascript持久化应用程序数据吗
- NativeScript应用程序数据绑定崩溃
- angularjs首先获取应用程序数据