【问题标题】:After append how to wait for button click resolve追加后如何等待按钮单击解决
【发布时间】:2019-05-17 12:21:19
【问题描述】:

我正在将 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')}

}

【问题讨论】:

标签: javascript angular angular7


【解决方案1】:

我通过在承诺中添加我的所有事件来解决这个问题,例如:

 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);
            }

        });

对我来说很好用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多