我的离子/角度应用中的逻辑存在问题。我需要一些javascript最佳实践建议。
在.run
中,我从服务器异步检索数据库。完成后,我写了一个包含localStorage
:
.run([ ....
var promiseUpdateProDB = updateProDB.get();
promiseUpdateProDB.then(
function(prodata) {
var prodata = sessionService.get('prodata');
var imagesUrls = imagesService.manage(prodata);
// console.log('imagesUrls in app.js :');
// console.log(imagesUrls);
sessionService.persist('imagesUrls', imagesUrls);
},
function(error) {});
然后,在.controller(' AppCtrl',....,这是我的侧边菜单的控制器,我需要这些信息写在localStorage:
app.js:
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: "/app",
abstract: true,
templateUrl: "templates/menu.html",
controller: 'AppCtrl'
})
...
controllers.js:
.controller('AppCtrl', ....
....
$scope.imagesUrls = sessionService.get('imagesUrls');
$scope.getImgPathProfileModal = function(str) {
str = $filter('nospace')($filter('lowercase')(str));
str = str + ".png";
return $scope.imagesUrls[str];
}
但此时,异步过程尚未完成,$scope.imagesUrls
为空....
你能帮我找出一个干净/最佳实践/强有力的方法吗?
非常感谢你的帮助。