2016-09-03 1 views
2

У меня есть mddialog, который пытается использовать md-цвета для установки цвета backGround div в диалоговом окне. Однако он не соблюдает текущую тему, вместо этого игнорирует синюю тему.mdcolors не работает в mddialog для углового материала

md-colors="{backgroundColor: 'primary'}" 

Это известная проблема? Есть ли обходной путь?

Использование версии 1.1.1

ответ

1

Это работает - CodePen

Markup

<div ng-controller="TasksController as vm" class="md-padding" ng-cloak="" ng-app="app"> 
    <md-button class="md-primary md-raised" ng-click="vm.show($event)"> 
     Custom Dialog 
    </md-button> 

    <script type="text/ng-template" id="test.html"> 
    <md-dialog aria-label="Test" layout-margin layout="column" layout-align="center center"> 
     <div style="width:100px; height:100px;" md-colors="::{background: 'altTheme-primary-700'}"></div> 
    </md-dialog> 
    </script> 
</div> 

JS

angular.module('app',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 

.config(function($mdThemingProvider) { 
    $mdThemingProvider.theme('altTheme') 
    .primaryPalette('purple') 

    $mdThemingProvider.setDefaultTheme('altTheme'); 
}) 

.controller('TasksController', function($scope, $mdDialog) { 
    var vm = this; 
    vm.show = function(ev) { 
    $mdDialog.show({ 
     templateUrl: 'test.html', 
     parent: angular.element(document.body), 
     targetEvent: ev, 
     clickOutsideToClose:true 
    }); 
    }; 
}); 
+0

Похоже, я нужно переместить диалог мой в ng- шаблонный блок. – ed4becky

+0

@ ed4becky Вам не нужно. Он может быть встроенным. Как вы его настроили? –

+0

Хорошо, но если у меня нет аргумента '$ event', например, $ mdDialog.show() запускается при загрузке моего контроллера? –

Смежные вопросы