我在我的应用程序中设置了背景颜色的设置列表(白色和黑色),当我选择黑色时,背景变为黑色但在关闭应用程序后,它再次变回白色,这是默认颜色。任何人都知道如何在重新打开应用程序时保存设置并加载它?
答案 0 :(得分:3)
我建议创建一个用于管理应用设置的服务(/ factory):
myApp.factory('SettingsFactory', [function() {
var _settingsKey = "appSettings",
defaultSettings = {
bgColor: #fff
};
function _retrieveSettings() {
var settings = localStorage[_settingsKey];
if(settings)
return angular.fromJson(settings);
return defaultSettings;
}
function _saveSettings(settings) {
localStorage[_settingsKey] = angular.toJson(settings);
}
return {
get: _retrieveSettings,
set: _saveSettings,
getBgColor: function() {
return _retrieveSettings().bgColor;
}
setBgColor: function(color) {
var settings = _retrieveSettings();
settings.bgColor = color;
_saveSettings(settings);
}
}
}]);
然后在你的控制器中使用它:
myApp.controller('MyCtrl', [$scope, SettingsFactory, function($scope, SettingsFactory) {
$scope.settings = SettingsFactory.get(); // get settings including bgColor
$scope.onBgColorChange = function(color) {
SettingsFactory.setBgColor(color);
}
}]);