【问题标题】:Angular 4 - Do not update ngModel for a specific option in dropdownAngular 4 - 不要为下拉列表中的特定选项更新 ngModel
【发布时间】:2019-04-30 18:12:31
【问题描述】:

我正在使用 PrimeNG 来呈现我的动态下拉选项。根据选项值,我不希望更新我的 ngModel。

假设我的选项是一个对象,例如 dropdownObject.canUpdateModel = true,那么我希望更新我的 ngModel,如果不是,则不应该更新 ngModel。有人可以帮我解决这个问题吗?

<p-dropdown #dp [options]="myList"(onChange)="onFMyDropdownChange(selectedForeCast)"[(ngModel)]="selectedForeCast"></p-dropdown>

【问题讨论】:

    标签: angular angular-ngmodel primeng-dropdowns


    【解决方案1】:

    使用 getter/setter 方法,因此您将能够拦截尝试为模型设置新值 - 检查给定标准的值 - 并分配给模型或拒绝更改。

    应该是这样的

    get selectedForeCast(){
       return whateverModelValue;
    }
    
    set selectedForeCast(selectedValue){
       if(selectedValue whatever here){
         whateverModelValue=selectedValue;
     }
    }
    

    【讨论】:

    • 感谢@Antoniossss 的回复。我已经实现如下。但是,如果我根据以下 else 条件选择该选项,则调试器第一次遇到预期的 else 块。但是,如果我更改选项并返回到 else 条件选项,则控件不会进入设置器。 get selectedForeCast() { return this.selectedForecast; } 设置 selectedForeCast(selectedForecast) { if (selectedForecast.status !== 'P') { this.selectedForecast = selectedForecast; } 其他 { this.showGenerateScenarioStatus(); } }
    • showGenerateScenarioStatus 中可能存在异常。没有代码就无法分辨。堆栈闪电战。但无论如何,这结束了这里的主要问题。这是要走的路。
    猜你喜欢
    • 1970-01-01
    • 2020-06-22
    • 2018-07-15
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多