angular.js - $mdThemingProvider tidak boleh digunakan dalam pengawal
高洛峰
高洛峰 2017-05-15 16:56:08
0
2
783

.config(Tema Teras)

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;

modul.js

export default angular.module('theme',['ngMaterial']);

pengawal.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;

Saya mahu menukar gaya tema dalam pengawal ini secara dinamik, tetapi apabila saya menyuntik Penyedia ini, saya mendapat ralat! Apa yang patut dibuat?
Apa yang boleh saya fikirkan ialah (1) Bolehkah saya $menonton pembolehubah dalam .config() untuk menukar tema?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
给我你的怀抱

Soalan rujukan
Saya baru sahaja melihat kod sumber bahan yang terkini. Jika anda tidak menukar kod sumber, sila abaikan jawapan ini.

Anda boleh mencubanya seperti berikut:
1. Ubah suai kod sumber bahan mengikut jawapan dalam soalan rujukan

2. Dalam fasa konfigurasi, daftar $mdThemingProvider untuk digunakan oleh pengawal

angular.module("yourModule",['whateverDependencies']).config(
function($provide, $mdThemingProvider) { 
    $provide.value('themeProvider', $mdThemingProvider); 
})

3. Muat semula tema dalam pengawal

.controller('someController', function(themeProvider, $injector) {         
  themeProvider.theme('default').dark();
  themeProvider.reload($injector);
}
曾经蜡笔没有小新

Configuring of the default theme is done by using the $mdThemingProvider during application configuration.
Tapak web rasmi berkata, sila konfigurasikannya dalam konfigurasi.

bahan sudut telah pun memberikan tema semasa menjana halaman. Sebagai contoh, selepas butang md dijana, ia adalah md-button md-default-theme. Jika anda ingin mengubah suai tema, anda boleh melintasi halaman dan menggantikan md-default-theme dengan tema yang anda mahu, md-dark-theme.

Tetapi ia memenatkan, bukan?

Jadi, sebaiknya buka pratonton dalam tetingkap baharu selepas memilih tema.
Atau terdapat halaman tetapan tema berasingan yang menyenaraikan rupa semua tema. Hanya ada pilihan. Lagipun, pratonton antara muka di laman web asal adalah perkara yang sangat menjengkelkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan