AngularJS在用户选择上切换CSS主题

初级

我从bootswatch下载了主题,并试图允许用户切换主题。切换主题后,所有引导CSS都会暂时消失,直到加载新主题为止。在加载CSS之前如何防止更改,或者在加载新主题之前切换回默认主题?

index.ejs(在头)

<link rel="stylesheet" href="/external/bootstrap/css/bootstrap_yeti.min.css"
      ng-if="myTheme == ''">
<link rel="stylesheet" ng-href="/external/bootstrap/css/bootstrap_{{myTheme}}.min.css"
      ng-if="myTheme != ''">

选拔

<select class="form-control"
        id="theme"
        name="theme"
        ng-model="theme"
        ng-change="newTheme()">
  <option value="" disabled>Select Theme</option>
  <option ng-repeat="(key, val) in availableThemes" value="{{val}}">{{key}}</option>
</select>

索引控制器

$scope.myTheme = '';
$rootScope.$watch('myTheme', function(value) {
  if (value != undefined) {
    $scope.myTheme = value;
  }
});

选择控制器

$scope.availableThemes = {
  Cerulean: 'cerulean',
  Cosmo:    'cosmo',
  Yeti:     'yeti'
};
$scope.newTheme = function() {
  console.log($scope.theme);
  if ($scope.theme != undefined) {
    $rootScope.myTheme = $scope.theme;
  }
}

任何帮助表示赞赏!谢谢

熙珍

我认为这不是AngularJS的问题。我认为您的方法应该有所不同。

据我所知,主题功能通常按以下方式实现。

  1. 为每个主题(蔚蓝,宇宙,雪人)创建一个CSS文件。您应该编辑CSS文件,以免彼此冲突。(将.cerulean,.cosmo,.yeti放在所有CSS选择器的前面。如果使用sass或更少,这会容易得多。)

  2. 从HTML头加载所有CSS文件。

    <link rel="stylesheet" href="/bootstrap/css/bootstrap_cerulean.min.css">
    <link rel="stylesheet" href="/bootstrap/css/bootstrap_cosmo.min.css">
    <link rel="stylesheet" href="/bootstrap/css/bootstrap_yeti.min.css">
    
  3. 如果用户选择主题,则将正文或根元素的类更改为相应的主题名称。

    <body class="cerulean">
    <body class="cosmo">
    <body class="yeti">
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取切换RadioButton用户值

来自分类Dev

angularjs在条件上切换类

来自分类Dev

将CSS文件预加载到缓存中以进行主题切换

来自分类Dev

iOS 7键盘主题切换

来自分类Dev

如何在用户指定的位置切换两个底座

来自分类Dev

在javascript中切换主题

来自分类Dev

在按钮上切换课程(选择/取消选择)

来自分类Dev

JavaScript-在keyDown上切换CSS样式

来自分类Dev

切换按钮在Android上不切换

来自分类Dev

AngularJS类在按钮上切换

来自分类Dev

jQuery切换.css

来自分类Dev

Linux内核如何在用户模式和内核模式堆栈之间切换?

来自分类Dev

在div而不是输入字段上使用CSS切换

来自分类Dev

如何从商店获取主题并在react-admin上切换应用主题?

来自分类Dev

angularjs在条件上切换类

来自分类Dev

通过jQuery在嵌套元素上切换CSS类

来自分类Dev

如何在用户指定的位置切换两个底座

来自分类Dev

即时切换CSS

来自分类Dev

切换CSS类angularjs

来自分类Dev

切换主题后外观不变

来自分类Dev

在AngularJS中单击元素上切换CSS类?

来自分类Dev

在没有密码的情况下在用户和root之间切换

来自分类Dev

在用户控件中的状态之间切换

来自分类Dev

切换开关css

来自分类Dev

无法在切换面板上找到对 CSS 的正确调整

来自分类Dev

仅在单击的元素上切换 css 类

来自分类Dev

使用 HDMI 在用户 / TTY 之间缓慢切换

来自分类Dev

使用javascript在div上切换多个css类

来自分类Dev

当用户单击按钮时,Jquery 切换 css?