我有个守望者:
$scope.bool = false;
$scope.$watch(function(){
return sessionService.get('computed');
}, function(){
if (sessionService.get('computed')) {
$scope.bool = true;
} else {
$scope.bool = false;
}
});这个离子应用程序的menu.html中的这个按钮:
<button nav-direction="back" class="button yy" ui-sref="app.result" ui-sref-active="currentNav" ng-show="bool" ng-click="navResult()">
Board
</button>下面是sessionService:
.service('sessionService', ['$cookieStore', function ($cookieStore) {
var localStoreAvailable = typeof (Storage) !== "undefined";
this.store = function (name, details) {
if (localStoreAvailable) {
if (angular.isUndefined(details)) {
details = null;
} else if (angular.isObject(details) || angular.isArray(details) || angular.isNumber(+details || details)) {
details = angular.toJson(details);
};
sessionStorage.setItem(name, details);
} else {
$cookieStore.put(name, details);
};
};
this.persist = function(name, details) {
if (localStoreAvailable) {
if (angular.isUndefined(details)) {
details = null;
} else if (angular.isObject(details) || angular.isArray(details) || angular.isNumber(+details || details)) {
details = angular.toJson(details);
};
localStorage.setItem(name, details);
} else {
$cookieStore.put(name, details);
}
};
this.get = function (name) {
if (localStoreAvailable) {
return getItem(name);
} else {
return $cookieStore.get(name);
}
};
this.destroy = function (name) {
if (localStoreAvailable) {
localStorage.removeItem(name);
sessionStorage.removeItem(name);
} else {
$cookieStore.remove(name);
};
};
var getItem = function (name) {
var data;
var localData = localStorage.getItem(name);
var sessionData = sessionStorage.getItem(name);
if (sessionData) {
data = sessionData;
} else if (localData) {
data = localData;
} else {
return null;
}
if (data === '[object Object]') { return null; };
if (!data.length || data === 'null') { return null; };
if (data.charAt(0) === "{" || data.charAt(0) === "[" || angular.isNumber(data)) {
return angular.fromJson(data);
};
return data;
};
return this;
}])在某种程度上,应用程序创建变量computed并将其存储到sessionStorage中。
由于观察者的原因,我得到了一个周期误差。你能帮忙吗?
发布于 2015-10-14 01:18:07
在某一时刻,应用程序创建计算出来的变量并将其存储到sessionStorage.中
如果是这样的话,在$rootScope上触发一个事件
$rootScope.$broadcast('computedChanged');然后在你的控制器中你有了$watch
$scope.$on('computedChanged', function(){
...
});https://stackoverflow.com/questions/33111279
复制相似问题