【发布时间】:2016-05-18 20:43:24
【问题描述】:
在angular-material中,我们可以在一个角度config块中定义调色板,方法如下:
angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
$mdThemingProvider.theme('default')
.primaryPalette('pink')
.accentPalette('orange');
});
真是太棒了……
但是
我找不到处理给定调色板的当前颜色值的方法,只是为了在与本机支持的元素列表不匹配的元素上使用相同的颜色,无论是否自定义。
支持主题化的元素有:
- md 按钮
- md-复选框
- md-progress-循环
- md-progress-linear
- md 单选按钮
- md-滑块
- md 开关
- md 选项卡
- md-text-float
- md 工具栏
参考https://material.angularjs.org/latest/Theming/02_declarative_syntax
也许更多,但可以肯定的是,不支持自定义元素。
因此,如果我创建自定义 DOM 元素或嵌套元素(无论如何),如何应用当前 warn 调色板的当前 700 值 default 主题?
我没有在 API 中找到任何东西。
我搜索 service 之类的内容,其中公开了一个或多个可用方法,例如:
$mdTheme.getTheme('default');
例如,此方法应返回一个由该主题中填充的所有调色板填充的对象。
编辑:使用示例
这个例子不是漂亮的代码设计,而是要简单
然后,我将能够在范围上公开它并在其他(自定义或本机)指令中使用它:
// controller:
angular.module('myApp').controller('myCtrl',function($scope,$mdTheme){
var primary500 = $mdTheme.getTheme('default').getPalette('primary').getHue('500');
$scope.customStyleBorderPrimary = {
'border-bottom': 'solid 2px ' + primary500
};
}
然后
<!-- in view -->
<h4 ng-style="customStyleBorderPrimary" ng-controller="myCtrl">
My h4 title with primary border-bottom
</h4>
【问题讨论】:
-
您想将材质的默认调色板应用到您的自定义指令吗?
-
例如,是的。或者能够将其应用于自定义元素的样式属性:
<span ng-style="{'border-bottom':'solid 2px '+palettePrimary500">或其他。 -
您可以使用来自google.com/design/spec/style/color.html#color-color-palette的调色板编写自己的css类
标签: javascript css angularjs material-design angular-material