如何在Angular Material中添加搜索栏?

4

我正在尝试向<md-toolbar>添加一个搜索输入框,但似乎没有任何样式。添加搜索栏似乎是一个常见的头部元素,所以也许我错过了什么。

<md-toolbar md-theme="input">
    <md-input-container flex>
    <md-icon class="material-icons">&#xE8B6;</md-icon>
    <input ng-model="search.notes" placeholder="Search here">
    </md-input-container>
</md-toolbar>

然后在JS代码中:

app.config(['$mdThemingProvider', function($mdThemingProvider) {
    $mdThemingProvider.theme('input')
        .primaryPalette('blue')
        .accentPalette('pink')
        .warnPalette('red')
        .backgroundPalette('grey');
}]);

但是,虽然该元素确实出现了,但很明显这不是它应该使用的方式,因为间距、字体颜色或对齐方式都不匹配。

http://codepen.io/Xeoncross/pen/rLxEqv


那么缺少什么?期望不明确。 - charlietfl
1个回答

1
虽然这并不能解决在工具栏/标题中使用md-input的问题,但是您可以通过使内容区域变暗以使其与常规md-content块区分开来,从而使md-content看起来像是工具栏的一种替代方法。如果您不介意黑色的话,这算是一个解决问题的方法。
<md-content md-theme="input" layout="column" layout-padding>
  <md-input-container style="padding-bottom: 0; margin-bottom: 0">
     <md-icon class="material-icons">&#xE8B6;</md-icon>
     <input ng-model="search.notes" placeholder="Search here">
  </md-input-container>
</md-content>

并且主题js:

app.config(['$mdThemingProvider', function($mdThemingProvider) {
    $mdThemingProvider.theme('input')
      .primaryPalette('blue')
      .dark();                 // <----- Note
  }
]);

这里是一个例子:http://codepen.io/Xeoncross/pen/jrWgqY


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接