簡體   English   中英

追加后如何等待按鈕點擊解決

[英]After append how to wait for button click resolve

我在服務中將html內容附加到正文中。 (急需)

  1. 點擊按鈕如何調用方法?
  2. 如何解決,直到用戶點擊按鈕

這是我的服務:

import { Injectable, OnInit } from '@angular/core';

@Injectable({
    providedIn: 'root'
})
export class AppConfig  {

    option:string;
    popup = `<div class="main-section">

        <div class="singin-options">
            <div class="form-check form-check-inline">
                <input class="form-check-input" (change)="onLoginChange($event)" value="CTS" type="radio" name="loginOption" id="inlineRadio1">
                <label class="form-check-label" for="inlineRadio1">Login as ABC Member</label>
            </div>
            <div class="form-check form-check-inline">
                <input class="form-check-input" (change)="onLoginChange($event)" value="IBO" type="radio" name="loginOption" id="inlineRadio2">
                <label class="form-check-label" for="inlineRadio2">Login as XYZ Member</label>
            </div>
        </div>
        <div class="signin">
            <button type="button" class="btn btn-success">Sign In</button>
        </div>

    </div>`

    constructor(private store:Store<StateShared>){}

    initializeData() {

        return new Promise((resolve, reject) => {

            $('body').append(this.popup);//appended

            return setTimeout(() => {
                resolve(true) //get value from user, wait until
            }, 5000)

        });
    }

    onLoginChange(){ console.log('loo')}

}

我通過在promise中添加我的所有事件來解決這個問題:

 return new Promise((resolve, reject) => {

            if(!localStorage.getItem("name")){

                $('body').append(this.popup);

                $("input[name=loginOption]:radio").change(function (event) {
                    that.userOption =  $(event.target).val();
                    $("button").prop('disabled', false);
                })

                $("button").prop('disabled', true);

                $("button").click(function () {
                    that.value = false;
                    localStorage.setItem("name", that.userOption);
                    resolve(true);

                })
            }

            if(localStorage.getItem("name")){
                resolve(true);
            }

        });

這對我來說可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM