为了$rootScope
在 refresh[F5] 上保留一个值,我们可以$route.reload
在控制器中使用如下:
$scope.reloadCtrl = function(){ console.log('reloading...'); $route.reload(); }
由于我使用了这么多控制器,有什么方法可以普遍使用app.config()
吗?
为了$rootScope
在 refresh[F5] 上保留一个值,我们可以$route.reload
在控制器中使用如下:
$scope.reloadCtrl = function(){ console.log('reloading...'); $route.reload(); }
由于我使用了这么多控制器,有什么方法可以普遍使用app.config()
吗?
通过刷新页面,您将从内存中清除 $rootscope。您的应用程序重新启动。
您可以使用某种存储。这样,您可以保存用户偏好并在他返回您的应用程序时再次使用它。
例如,您可以使用 $cookies 或 sessionStorage / localStorage。
如果你想在你的 app.run 上检测刷新,你可以这样做:
在 app.run() 块中注入 '$window' 依赖项并添加:
app.run(['$rootScope', '$location', '$window',function($rootScope,$location, $window) {
window.onbeforeunload = function() {
// handle the exit event
};
// you can detect change in route
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (!current) {
// insert segment you want here
}
});
}]);`
您可以使用角度工厂来获得跨控制器的所有值 使用以下代码
var app = angular.module('myApp', []);
app.factory('myService', function() {
var v1;
var v2;
var v3;
return{
v1:v1,
v2:v2,
v3:v3
});
app.controller('Ctrl1', function($scope,myService) {
});
app.controller('Ctrl2', function($scope,myService) {
});
如果您在 $rootscope 中使用常量,您甚至可以使用它
app.constant('myConfig',
{
v1:v1,
v2:v2,
v3:v3
});