Angular 6 中的可扩展搜索栏

Posted

技术标签:

【中文标题】Angular 6 中的可扩展搜索栏【英文标题】:Expandable search bar in Angular 6 【发布时间】:2019-01-24 07:20:24 【问题描述】:

我正在使用 Angular 6,我想为我在下面的代码中编写的可扩展搜索栏。

My Code

现在我的问题是我想在焦点输出的搜索框中输入值后停止转换。如果搜索栏为空,则将发生转换。请帮忙。

【问题讨论】:

【参考方案1】:

您必须使用 ngClass,我在单击时添加“填充”类,如果模糊且没有值则删除

<div class="right">
  <form id="search">
    <input #search type="search" placeholder="Search" [ngClass]="'filled':filled" 
         (click)="filled=true" (blur)="filled=search.value?true:false"> 
  </form>
</div>

//remove in your css
//#search input[type=search]
//And add (is the same adding .filled)
#search input[type=search].filled

  width: 400px;
  padding-left: 32px;
  color: #4a83c0;
  background-color: #fff;
  cursor: auto;


更新按钮关闭可以像

<div class="right">
  <form id="search">
    <input #search type="search" [placeholder]="filled?'Search':''" [ngClass]="'filled':filled" 
         (click)="filled=!filled" (blur)="filled=search.value?true:false">
         <button class="close" *ngIf="filled" (click)="search.value='';filled=false">X</button>
  </form>
</div>
.close

  z-index:10;
  margin-left:-3rem;
  margin-right:1rem;

【讨论】:

谢谢@Eliseo.. 它正在工作..:) 当搜索栏有 vale 时,您能帮我吗?然后在该按钮上会显示一个十字按钮,搜索栏的点击值将清除。你能帮帮我吗 它只是使用 *ngIf="filled" 添加一个按钮。注意:在你的 .ts 中添加一个变量。注意2:我的按钮很丑,但这只是一个想法【参考方案2】:

您可以在搜索输入上放置条件类,该类仅在它具有非空值时才存在,然后专门针对您的 CSS。比如:

&lt;input type="search" [class.has-value]="searchValue" placeholder="Search"&gt;

input[type=search]:focus, input.has-value 
   ...

【讨论】:

以上是关于Angular 6 中的可扩展搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

Angular 的可扩展卡

带有分页的可扩展嵌套 Angular 材料数据表未按预期工作?

Angular 控制台扩展

Angular 材质 sidenav 和扩展插入填充到左侧,为啥?

如何在 AngularJS 材料设计中创建简单的搜索输入文本?

GridView在android中的可扩展列表中