我正在从此链接https://www.npmjs.com/package/angular2-multiselect-dropdown使用多选下拉菜单(cuppa labs),但是我无法禁用该下拉菜单。
最初,如果我在设置中设置disable:true可以正常工作,但最初我希望disable:false,那么我需要在api成功响应后将disable:true更改。
documentDropdownSettings = {
text: "Required Document",
badgeShowLimit: 3,
enableSearchFilter: true,
maxHeight: 150,
classes: "myclass custom-class",
showCheckbox: true,
enableFilterSelectAll: false,
disabled:false
}
this.taskService.getTaskDetails(this.taskId, (success) => {
this.documentDropdownSettings.disabled=true
}, (error) => {
enter code here
})
我想动态禁用下拉菜单。
答案 0 :(得分:1)
我认为问题在于设置对象是不可变的。 您需要更改对象引用而不是其属性才能使绑定生效。
进行更改,然后更改参考可能会起作用。 像这样:
this.taskService.getTaskDetails(this.taskId, (success) => {
this.dropdownSettings['disabled'] = true;
this.dropdownSettings = Object.assign({}, this.dropdownSettings);
}, (error) => {
enter code here
})
P.S他们的官方方法似乎有点尴尬,他们为每个设置更改in their documentation重新创建对象。