更新值时数组更改为字符串
Array Changing to String When Updating Value
我的 HTML 页面上有一个列表。此列表使用 ng-options 从数组中提取。对象数组的属性之一是显示。 ng-options 使用过滤器仅显示 show == 1 的选项。当用户点击按钮时,列表中的 select 项被添加到数组中,show 值需要设置为 0,因此它从列表中删除。该值被设置为 0,但 ng-options 现在正在错误地打印 select 的选项。
数组定义
referenceTypes: Array<any> = [
{ label: 'Customer Reference', show: 1 },
{ label: 'PO Number', show: 1 },
{ label: 'SO Number', show: 1 }
]
按钮点击
addReferenceType = () => {
...
// hide the reference type from the add drop down list
this.referenceTypes.filter(option => option.label == this.referenceType)[0].show = 0;
}
HTML
<select ng-model='$ctrl.referenceType'
ng-options="option.label as option.label for option in $ctrl.referenceTypes | filter: {show: 1}">
<option value=""></option>
</select>
之前
之后
您需要以这种方式更改您的代码,否则有一次过滤器 returns 一个空数组并且您会遇到该错误,因为点击被触发了两次。
addReferenceType() {
let filteredTypes: Array<any> =
this.referenceTypes.filter(option => option.label == this.referenceType);
if (filteredTypes.length > 0) {
filteredTypes[0].show = 0;
}
}
我的 HTML 页面上有一个列表。此列表使用 ng-options 从数组中提取。对象数组的属性之一是显示。 ng-options 使用过滤器仅显示 show == 1 的选项。当用户点击按钮时,列表中的 select 项被添加到数组中,show 值需要设置为 0,因此它从列表中删除。该值被设置为 0,但 ng-options 现在正在错误地打印 select 的选项。
数组定义
referenceTypes: Array<any> = [
{ label: 'Customer Reference', show: 1 },
{ label: 'PO Number', show: 1 },
{ label: 'SO Number', show: 1 }
]
按钮点击
addReferenceType = () => {
...
// hide the reference type from the add drop down list
this.referenceTypes.filter(option => option.label == this.referenceType)[0].show = 0;
}
HTML
<select ng-model='$ctrl.referenceType'
ng-options="option.label as option.label for option in $ctrl.referenceTypes | filter: {show: 1}">
<option value=""></option>
</select>
之前
之后
您需要以这种方式更改您的代码,否则有一次过滤器 returns 一个空数组并且您会遇到该错误,因为点击被触发了两次。
addReferenceType() {
let filteredTypes: Array<any> =
this.referenceTypes.filter(option => option.label == this.referenceType);
if (filteredTypes.length > 0) {
filteredTypes[0].show = 0;
}
}