【发布时间】:2018-09-22 18:36:34
【问题描述】:
我想将我的 [ngValue] 属性绑定到删除了最后 4 个字符的字符串,事先使用 ngFor 执行此操作的最佳方法是什么?这是代码:
<select
id="symbolInLineSelector"
(change)="insertSymbol($event.target.value)"
class="ql-size"
title="symbolSelect">
<option
*ngFor="let symbol of keys(symbols)"
[ngValue]="symbol"
[innerHtml]="symbols[symbol]">
</option>
</select>
这是我从中提取的模型以及我在打字稿中如何使用它:
型号
export enum Symbols {
'equivales' = '\u2261     ;eq',
'notEquivales' = '\u2262     ;nev',
'implies' = '\u21d2     ;im',
'not' = '\u00AC     ;not',
'conjunction' = '\u22c0     ;an',
'disjunction' = '\u22c1     ;or',
'emptySet' = '\u2205     ;es',
'union' = '\u222A     ;un',
'intersection' = '\u2229     ;in',
'powerSet' = '\u2118     ;ps',
'gets' = '\u2254     ;=',
'genericQuantifier' = '\u2605     ;st',
'atLeast' = '\u2264     ;ge',
'atMost' = '\u2265     ;le',
'elementOf' = '\u2208     ;el',
'notElementOf' = '\u2209     ;nel',
'properSuperset' = '\u2283     ;pp',
'superset' = '\u2287     ;sp',
'notProperSubset' = '\u2284     ;npb',
'notSubset' = '\u2288     ;nsb',
'notProperSuperset' = '\u2285     ;npp',
'notSuperset' = '\u2289     ;nsp'
}
打字稿
import {Symbols} from '../../model/symbols';
keys = Object.keys;
symbols = Symbols;
insertSymbol(selectedVal) {
this.editorInstance.insertText(this.previousEditorSelection, selectedVal.splice(0,-4));
this.editorInstance.setSelection(this.previousEditorSelection.index + selectedVal.length + 1);
this.previousEditorSelection = this.editorInstance.getSelection();
}
所以目前我的网页显示一个如下所示的下拉列表:
这很好,但是当我单击这些选项之一并将其输入到编辑器时,它会将快捷键代码保留在右侧,而实际上我只希望在单击时将 unicode 字符插入编辑器。有没有办法在 [ngValue] 中拼接字符串,以便下拉列表显示所有信息,但插入会删除最后 4 个字符?如您在上面看到的,我已经尝试直接在 ngValue 和我的函数调用中进行拼接,但都没有奏效。
【问题讨论】:
标签: angular typescript select dropdown