繁体   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