我有一个制作http get请求的工厂:
grey.factory('JiraData', function( $http ) {
return {
async: function( ) {
return $http.get( 'js/testdata.json' )
.then( function( result ) {
return result.data;
});
}
};
});
我想在我的应用程序中使用上面返回的数据,在各种控制器和指令中。做这个的最好方式是什么?我可以在本地/会话存储或根范围中存储和操作数据吗?如果是这样,最好的方法是什么?
答案 0 :(得分:3)
如果您想要一种方法来调用http.get函数,只有一个错误访问数据不止一次,一种方法是将保证保存在变量上。
grey.factory('JiraData', function( $http ) {
var promise;
return {
async: function( ) {
if(!promise) {
promise = $http.get( 'js/testdata.json' )
.then( function( result ) {
return result.data;
});
}
return promise;
}
};
});
然后你就可以使用:
grey.controller('ACtrl', function( Jiradata ) {
JiraData.async().then(function(returnData) {
//your code
});
}
这样,http请求只能调用一次