2015-05-11 19 views
5

bir değişkeni kullanmak. Ama değiştiremiyorum ... themeChangerAdjustment tetikleyicisi tarafından değiştirildiğinde primaryPalette'in değişken renge dönüşmesini istiyorum.nasıl açısal kod config Açısal MD temanın rengini ayarlamak dynamicly çalışıyorum açısal yapılandırmada

var color = red; 

angular.module('myApp', ['ngResource', 'ui.router', 'ui.bootstrap', 'ngMaterial']) 
.config(['$mdThemingProvider', function($mdThemingProvider) { 
    $mdThemingProvider.theme('default').primaryPalette(color).accentPalette('orange'); 
}]) 

.run(['$log','$rootScope', 'themeChangerService', function($log,$rootScope, themeChangerService){ 
    $rootScope.$on('themeChangerAdjustment', function(){ 
     alert(themeChangerService.themes.color); 
     color = themeChangerService.themes.color; //works 
    }); 
    themeChangerService.prepForAdjustment(1); 
}]); 
Sen yapılandırma bloğunda erişilebilir olacaktır sağlayıcı ilan edebilir
+0

JSFiddle demo here görüyorum ama $ rootScope içinde ColorScheme değişkeni koyarak ile çözüm sana Eğer memnun değilseniz bayrak iyi olarak bu cevabı olabilir $ mdThemingProvider –

+0

için çalışır. – Jelle

cevap

1

, see doc

angular.module('myApp', ['ngResource', 'ui.router', 'ui.bootstrap', 'ngMaterial']) 
    .provider('color', function(){ 
     var color = 'red' 
     return { 
      value : color, 
      $get : function(){ 
       return { 
        value : color 
       }; 
      } 
     }; 
    }) 
    .config(function(colorProvider){ 
     console.log('color in config :',colorProvider.value); 
     //you config here 
    }) 
    .controller('myCtrl',function(color){ 
     console.log('color in ctrl :', color.value); 
    }); 

i vadede() config nasıl çözüleceğini bilmiyorum

+0

@Jelle için config $ rootScope bir şey kullanamazsınız benim – Freezystem