2017-05-05 6 views
2

フォームに2つのコントロールがあります。anglejsの入力テキストとコンボボックスをバインドする方法1

郵便番号 - (入力タイプテキスト)と都市 - (オプションの選択)

バックエンドのRESTサービスは、郵便番号や都市名が含まれていますJSONオブジェクトを送信します。私は、郵便番号が変更されたときに都市を変更したいのですが、その逆も同様です。また、jsonオブジェクトで郵便番号を検証します。

助けてください...

+0

入力テキストに連結されたスコープ付きの値を変更するコンボボックス変更イベントリスナーがあります。 – Teebo

答えて

1

いいえ。だから私はあなたが両方を得ることができるサーバサイドのスクリプトを持っていると仮定しているcity from pincodepincode from city

あなたのビューに2つのコントロールがあります。

1)入力ボックスは

2)

コンボボックス

は、今、私によると、最も簡単な方法は、あなたが両方のコントロールの ngChangeイベントで呼び出される関数を作るべきであるということです。

この関数は、サーバーに要求を行い、関連付けられたデータをフェッチし、そのデータを他のコントロールに送ります。

コントローラを介してコントロールを内部的に読み込むと、再びngChangeの機能が起動する可能性があります。したがって、それぞれのngChange関数では、それらの値の参照が必要です。これは、サーバー側からローカル変数にlatest values receivedの両方を格納し、関数が呼び出されるたびにチェックすることで実行できます。

私はこれがあなたの問題を解決すると信じています。

----------------更新----------------コメントで述べたように

、 SPAは、実行中にサーバに要求を送信してはならない。それは単に最後にjsonを送る。

そのように便利です。単純に2つの異なる機能を作り、1 getCityFromPincode(pincode)と2 getPincodeFromCity(city)

今、あなたは簡単にあなたがngChange()関数から取得する値に基づいてJavaScriptであなたの操作を行うことができます。

ちょうどあなたのCITY入力制御ngChange機能に機能getCityFromPincodeを呼び出し、同様に他のいずれかの。

あなたはおそらくこの方法で解決します。

+0

私の質問にお答えいただきありがとうございます。しかし、私は自分のサイト(SPA(Single Page Application))を維持したい。サーバーにリクエストを送信せずに、ページをロードするときに送信するjsonオブジェクトを使用します。 –

+0

その後、それはさらに良くなります。私の答えを更新させてください。 –

+0

@RenukaFernando見てみましょう。 –

関連する問題