为了账号安全,请及时绑定邮箱和手机立即绑定

$mdThemingProvider 不能在controller中使用吗

$mdThemingProvider 不能在controller中使用吗

弑天下 2019-04-19 16:29:50
.config(CoreTheme)functionCoreTheme($mdThemingProvider){$mdThemingProvider.theme('default').primaryPalette('blue',{'default':'500','hue-1':'900','hue-2':'A100','hue-3':'400'}).accentPalette('green',{'default':'600','hue-1':'900','hue-2':'A100','hue-3':'400'}).warnPalette('deep-orange',{'default':'500',});$mdThemingProvider.alwaysWatchTheme(true)}CoreTheme.$inject=['$mdThemingProvider'];exportdefaultCoreTheme;module.jsexportdefaultangular.module('theme',['ngMaterial']);controller.jsclassThemeCtrl{constructor($scope,$rootScope,$mdThemingProvider){$scope.changeTheme=changeTheme;functionchangeTheme(theme_name){$mdThemingProvider.theme('default').dark()}}}ThemeCtrl.$inject=['$scope','$rootScope','$mdThemingProvider'];exportdefaultThemeCtrl;我想在这个控制器中动态改变主题样式可是注入这个Provider报错!应该怎么做?我能想到的是(1)可以在.config()中$watch某个变量来改变主题吗?
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

参考问题刚才看了下最新的material源码,貌似没有reload这个函数,如果要使用下面的方法还是需要修改material的源码。如果不改源码的话,请忽略这个答案。
可以按如下步骤尝试下:1.按照参考问题里面的答案修改material的源码
2.在configure阶段,注册$mdThemingProvider供controller使用
angular.module("yourModule",['whateverDependencies']).config(
function($provide,$mdThemingProvider){
$provide.value('themeProvider',$mdThemingProvider);
})
3.在controller中重新加载theme
.controller('someController',function(themeProvider,$injector){
themeProvider.theme('default').dark();
themeProvider.reload($injector);
}
                            
查看完整回答
反对 回复 2019-04-19
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

Configuringofthedefaultthemeisdonebyusingthe$mdThemingProviderduringapplicationconfiguration.官网说了,请在configuration配置。
angularmaterial在生成页面的时候已经给好主题了。比如md-button生成之后是md-buttonmd-default-theme。如果要修改主题的话可以遍历页面md-default-theme替换成你想要的主题md-dark-theme。
但这样做很累,对吧。
所以最好是选一个主题之后,新窗口打开预览。或者有个单独设置主题的页面,列出所有主题的样子。供选择就好。毕竟在原有网站上预览界面是个很烦的事情。
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 528 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号