.config(CoreTheme)
function CoreTheme($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'];
export default CoreTheme;
module.js
export default angular.module('theme',['ngMaterial']);
controller.js
class ThemeCtrl{
constructor($scope,$rootScope,$mdThemingProvider){
$scope.changeTheme = changeTheme;
function changeTheme(theme_name){
$mdThemingProvider.theme('default').dark()
}
}
}
ThemeCtrl.$inject = ['$scope','$rootScope','$mdThemingProvider'];
export default ThemeCtrl;
我想在这个控制器中 动态改变主题样式 可是注入这个Provider报错!应该怎么做?
我能想到的是(1)可以在.config()中$watch某个变量 来改变主题吗?
给我你的怀抱2017-05-15 16:58:08
참고질문
최신 머티리얼 소스코드를 보았는데, 아래와 같은 방법을 사용하시려면 아직 머티리얼 소스코드를 수정하셔야 할 것 같습니다. 소스 코드를 변경하지 않으면 이 답변을 무시하십시오.
다음과 같이 시도해 볼 수 있습니다.
1. 참고 질문의 답변에 따라 자료의 소스 코드를 수정합니다
2 구성 단계에서 컨트롤러 사용을 위해 $mdThemingProvider를 등록합니다
으아악3. 컨트롤러에서 테마를 다시 로드하세요
으아악曾经蜡笔没有小新2017-05-15 16:58:08
Configuring of the default theme is done by using the $mdThemingProvider during application configuration.
공식 홈페이지에서는 구성에서 구성해 달라고 하더군요.
angular 재질은 페이지를 생성할 때 이미 테마를 지정했습니다. 예를 들어 md-button이 생성된 후에는 md-button md-default-theme입니다. 테마를 수정하려면 페이지를 탐색하여 md-default-theme를 원하는 테마인 md-dark-theme로 바꿀 수 있습니다.
근데 이거 하기 힘들죠?
그래서 테마를 선택한 후 새 창에서 미리보기를 여는 것이 가장 좋습니다.
또는 모든 테마의 모양을 나열하는 별도의 테마 페이지를 만드세요. 옵션만 있으면 됩니다. 결국, 원래 웹사이트에서 인터페이스를 미리 보는 것은 매우 짜증나는 일입니다.