如何为用户自定义值实现可编辑的md-select?
How to implement editable md-select for user's custom value?
Angular Material 库中有一个 <md-select>
控件。它只允许列表中的 select 选项。但是,如果我想允许用户在此字段中写入自己的值怎么办?所以我想要可编辑的 md-select 允许从列表中选择值或写入自己的值。可能吗?
改用<md-autocomplete>
。见 demo.
发现于 https://github.com/angular/material/issues/7970, so the credits go to icenold
<style>
.combocontainer{
width:200px;
display:inline;
}
.comboinput {
position:relative;
top:-3px;
left:-2.75em;
}
.comboinput div._md-text{
display:none !important;
}
.comboinput md-select-value:not([disabled]):focus ._md-select-value{
border-bottom:none;
}
.comboinput md-select-value{
min-width: 0.0em;
border-bottom:none !important;
}
</style>
<div class="combocontainer">
<md-input-container>
<label>combobox1</label>
<input type="text" ng-model="chosen"/>
</md-input-container>
<md-input-container class="comboinput">
<md-select ng-model="chosen" md-container-class="combomenu">
<md-option ng-value="'item 1'">item 1</md-option>
<md-option ng-value="'item 2'">item 2</md-option>
<md-option ng-value="'item 3'">item 3</md-option>
</md-select>
</md-input-container>
</div>
<div class="combocontainer">
<md-input-container>
<label>combobox2</label>
<input type="text" ng-model="chosen2" />
</md-input-container>
<md-input-container class="comboinput">
<md-select ng-model="chosen2" md-container-class="combomenu">
<md-option ng-value="'item 1'">item 1</md-option>
<md-option ng-value="'item 2'">item 2</md-option>
<md-option ng-value="'item 3'">item 3</md-option>
</md-select>
</md-input-container>
</div>
Angular Material 库中有一个 <md-select>
控件。它只允许列表中的 select 选项。但是,如果我想允许用户在此字段中写入自己的值怎么办?所以我想要可编辑的 md-select 允许从列表中选择值或写入自己的值。可能吗?
改用<md-autocomplete>
。见 demo.
发现于 https://github.com/angular/material/issues/7970, so the credits go to icenold
<style>
.combocontainer{
width:200px;
display:inline;
}
.comboinput {
position:relative;
top:-3px;
left:-2.75em;
}
.comboinput div._md-text{
display:none !important;
}
.comboinput md-select-value:not([disabled]):focus ._md-select-value{
border-bottom:none;
}
.comboinput md-select-value{
min-width: 0.0em;
border-bottom:none !important;
}
</style>
<div class="combocontainer">
<md-input-container>
<label>combobox1</label>
<input type="text" ng-model="chosen"/>
</md-input-container>
<md-input-container class="comboinput">
<md-select ng-model="chosen" md-container-class="combomenu">
<md-option ng-value="'item 1'">item 1</md-option>
<md-option ng-value="'item 2'">item 2</md-option>
<md-option ng-value="'item 3'">item 3</md-option>
</md-select>
</md-input-container>
</div>
<div class="combocontainer">
<md-input-container>
<label>combobox2</label>
<input type="text" ng-model="chosen2" />
</md-input-container>
<md-input-container class="comboinput">
<md-select ng-model="chosen2" md-container-class="combomenu">
<md-option ng-value="'item 1'">item 1</md-option>
<md-option ng-value="'item 2'">item 2</md-option>
<md-option ng-value="'item 3'">item 3</md-option>
</md-select>
</md-input-container>
</div>