更改mat-autocomplete宽度?

时间:2018-03-11 07:21:25

标签: angular autocomplete material-design

似乎$nested = []; foreach($results as $r) { if($r['parent_id'] === null) { $nested[$r['id']] = [ 'title' => $r['title'], 'url' => $r['url'], 'subs' => [] ]; continue; } $nested[$r['parent_id']]['subs'][] = [ 'title' => $r['title'], 'url' => $r['url'] ]; } $nested = array_values($nested); 宽度始终是我们输入的输入的宽度。有没有办法让它更大?我有一个非常小的输入,无法读取下拉项目。我在形式空间方面也受到限制,因此无法使输入更大。

create procedure Studentinfo()

begin 
declare st int;

declare stu varchar(20);

declare  done int default false;

declare CURSOR  s1 for select sid,sname from student;

declare continue handler for not found set done =true;

open s1;

read1 :loop

fetch s1 into st,stu;

if done=true then

leave read1;

end if;


select concat(st,stu);

end loop read1;

close s1;

end;

5 个答案:

答案 0 :(得分:11)

mat-autocomplete样式继承自cdk-overlay-pane。为了改变CSS下面的宽度使用。

::ng-deep .cdk-overlay-pane {
    /* Do you changes here */
      min-width:450px;
}

您可以在此处参考完整示例: https://stackblitz.com/edit/angular-vzetqy

答案 1 :(得分:9)

只需将panelWidth属性添加到mat-autocomplete

<mat-autocomplete [panelWidth]="300">

答案 2 :(得分:6)

除了Athan Soulis所说的那样,我还偶然发现panelWidth也接受值“ fit”,这恰好符合我们大多数人的目标(使它尽可能地宽)。不确定它是否为“任何CSS尺寸值”,但是否可以使用。

答案 3 :(得分:2)

In the document for MatAutocomplete有一个属性可满足您的需求:

  

@Input()   panelWidth:字符串|数字

     

指定自动完成面板的宽度。可以是任何CSS大小值,否则将与其主机的宽度匹配。

使用此属性,您不会有被cdk-overlay-pane继承的任何其他事物干扰的风险。

对于进一步的自定义,您可能会发现此属性也很有用:

  

@Input('class')   classList:字符串

     

采用在主机mat-autocomplete元素上设置的类,并将其应用于覆盖容器内的面板,以简化样式。

答案 4 :(得分:2)

我用(动态)解决了它:

 [panelWidth]="'auto'"

以下也是可能的:

panelWidth="auto"