在运行时使用angular.js更改主题

时间:2017-07-04 06:39:48

标签: javascript angularjs material-design angular-material

我想在运行时更改我的angular.js应用程序的主题我已经进行了主题提供程序设置,但它们没有应用,我的代码是:

.controller('ApplicationController', function (
    $scope, 
    themeProvider, 
    $mdTheming,
    SomeService) {

    SomeService.Init()
        .then(function(res) 
        {
            var customPrimary = {
                '50': '#FFFFF',
                '100': '#FFFFF',
                '200': '#FFFFF',
                '300': '#FFFFF',
                '400': '#FFFFF',
                '500': '#FFFFF',
                '600': '#FFFFF',
                '700': '#FFFFF',
                '800': '#FFFFF',
                '900': '#FFFFF',
                'A100': '#FFFFF',
                'A200': '#FFFFF',
                'A400': '#FFFFF',
                'A700': '#FFFFF'
            };
            themeProvider
            .definePalette('palettePrimary',
                customPrimary);

            var customSecondary = {
                '50': '#FFFFF',
                '100': '#FFFFF',
                '200': '#FFFFF',
                '300': '#FFFFF',
                '400': '#FFFFF',
                '500': '#FFFFF',
                '600': '#FFFFF',
                '700': '#FFFFF',
                '800': '#FFFFF',
                '900': '#FFFFF',
                'A100': '#FFFFF',
                'A200': '#FFFFF',
                'A400': '#FFFFF',
                'A700': '#FFFFF'
            };
            themeProvider
                .definePalette('paletteSecondary',
                    customSecondary);

            themeProvider
                .theme('alternative')
                    .primaryPalette('palettePrimary')
                    .accentPalette('paletteSecondary')
                ;

            $mdTheming.generateTheme('alternative');
            themeProvider.setDefaultTheme('alternative');
        }
    );
}

正如您所看到的,颜色的变化取决于服务,但是当它被执行时没有任何变化。

如果我在服务之外设置颜色似乎有效,但模板上没有任何变化。

有什么想法吗?

0 个答案:

没有答案