javascript - angular2 http clickイベントでは、最初のクリックは未定義で、2回目のみ値が取得可能
怪我咯
怪我咯 2017-05-15 17:13:55
0
1
861

angular2 http のクリック イベントでは、最初のクリックは未定義で、2 回目のクリック以降のみ値を取得できます。この理由と実装方法は何ですか?

たとえば、以下のコードでは、okLogin() から名前とパスワードを取得し、返されたデータを this.result に割り当て、クリック イベントの発生後に isLogin() を実行します。isLogin は okLogin を実行します。 。しかし、最初にクリックしたときの結果は未定義であることがわかりました。2 回目にクリックしたときは、結果の値が変更されたときでも、最初のクリックでは前の値が出力されました。現在取得されている値はそうではありませんでした。どうやって解決すればいいでしょうか?

リーリー

印刷された効果:
未定義
{データ中のデータ}

以前に結果の値を初期化しましたが、後で受信ユーザー名とパスワードが変更されたときに、http.get データが変更されましたが、結果は以前の値のままであり、正しく表示するには 2 回目のクリックが必要でした。

以前に count を実行していたときにもこの問題に遭遇しましたが、自動追加は 0 から直接開始され、0 は見たくなく、1 から開始するだけだったので、デフォルト値を設定しましたカウントは 1

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(1)
黄舟

okLogin() メソッドが正しく書かれていません。 subscribe非同期動作があります。そのため、okLogin が呼び出されると、this.result には値が割り当てられていないように見え、isLogin は実行を継続します。

修正計画:

(1)Promiseメソッド
(2)subscribeの書き方を修正

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート