कोणीय सामग्री चटाई-का चयन करें: चयन परिवर्तन घटना को रद्द

वोट
0

मैं यह पता लगाने की चटाई का चयन करें (कोणीय सामग्री 7.3.7) परिवर्तन घटना रद्द करने और ईवेंट हैंडलर में पहले वाली स्थिति बहाल करने के लिए कैसे कोशिश कर रहा हूँ। क्या यह संभव है?

मेरे चयन नियंत्रण:

                <mat-form-field>
                    <mat-select #visualOptionsSelect formControlName=competenceVisualOption (selectionChange)=visualOptionSelectionChanged($event)
                                required>
                        <mat-option *ngFor=let visualOption of availableVisualOptions [value]=visualOption>
                            {{visualOption.name}}
                        </mat-option>
                    </mat-select>
                </mat-form-field>

जब कुछ शर्तें पूरी होने पर मैं चयन रद्द करें और पिछली चयनित आइटम छोड़ना चाहते हैं। प्रतिक्रियाशील रूपों का उपयोग कर मैं अलग चर में वर्तमान में चयनित आइटम की दुकान और में तुलना करने की कोशिश की valueChangesकी सदस्यता competenceVisualOptionनियंत्रण। लेकिन यह काफी गंदा लग रहा है। इसके अलावा, मैं इसलिए मैं उन्हें बहुत मैन्युअल कार्रवाई करने के लिए की आवश्यकता होगी इस चयनित आइटम पर अन्य निर्भरता है,।

मैं वास्तव में किसी भी मदद की सराहना करेंगे। अग्रिम में धन्यवाद

09/10/2019 को 11:55
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

ठीक है, लगता है कोई बाहर के बॉक्स विशेषता यह है कि मैं उपयोग कर सकते हैं नहीं है। मेरी समस्या के हल के लिए एक ही रास्ता स्टोर करने के लिए 'अंतिम' चयनित मूल्य है - यदि आवश्यक हो तो मैं इसे करने के लिए रोलबैक कर सकते हैं।

मेरे टेम्पलेट कोड:

                <mat-form-field>
                    <mat-select #visualOptionsSelect placeholder="Тип отображения" formControlName="templateCompetenceVisualOption" (selectionChange)="visualOptionSelectionChanged($event.value)"
                                required>
                        <mat-option *ngFor="let visualOption of availableVisualOptions" [value]="visualOption">
                            {{visualOption.name}}
                        </mat-option>
                    </mat-select>
                </mat-form-field>

Selectionchange ईवेंट हैंडलर में - selectionChange- मैं हमेशा मौजूदा चयनित मान संग्रहीत और फिर नए चयन के बाद यह करने के लिए वापस अगर उपयोगकर्ता जवाब 'नहीं' सवाल का (मैं का उपयोग sweetalert2पुस्तकालय पॉपअप के लिए)

visualOptionSelectionChanged(selectedVisualOption: CompetenceVisualOption) {

    //если ранее поле было не заполнено, то не задаем вопрос
    if (!this.lastActiveVisualOption) {

        //перезапишем предыдущее активное значение
        this.lastActiveVisualOption = selectedVisualOption;
        return;
    }

    swal({
        text: 'При смене отображения вариантов ответов, предыдущие значения сбросятся. Сменить отображение ответов?',
        type: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Да',
        cancelButtonText: 'Нет',
        confirmButtonClass: "btn btn-primary",
        cancelButtonClass: "btn btn-secondary cfb-btn-border",
        buttonsStyling: false
    }).then((result) => {
        if (result.value) {

            // перерисуем область ответов
            this._setRatingLevelOptionsComponent(selectedVisualOption.code);
            //перезапишем предыдущее активное значение
            this.lastActiveVisualOption = selectedVisualOption;
        }
        else {
            //если выбрали Нет, то вернем прежний вариант и варианты ответа не трогаем
            this.templateCompetenceVisualOption.setValue(this.lastActiveVisualOption);
        }
    });
}
16/11/2019 को 09:29
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more