angular UI select。を使用しています。
https://github.com/angular-ui/ui-select
this plunkr で利用可能なデモを見ました
リモートサービスからデータを取得したい。ユーザーがテキストフィールドに何かを入力するたびに。入力値に基づいてフィルタリングされた結果を使用して、リモートサービスからデータを取得します。
Webサービスを作成しましたが、Webサービスは正常に機能しています。
angular ui selectを使用してリモートサービスからデータを取得するにはどうすればよいですか?
現在、私はデモの簡単な例をフォローしています
<ui-select multiple ng-model="multipleDemo.colors" theme="select2" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>
<ui-select-choices repeat="color in availableColors | filter:$select.search">
{{color}}
</ui-select-choices>
</ui-select>
availableColors
は事前定義された配列です。事前にデータ配列を定義したくありません。
考えられるドキュメントやチュートリアルをインターネットで探していましたが、有用なものが見つかりませんでした。
この例では、最初にavailableColors
を空の配列として初期化する必要があります。
$scope.availableColors = [];
次に、$http
を使用して単純なサービスを記述できます。
$http.get('data.json').then(
function (response) {
$scope.availableColors = response.data;
$scope.multipleDemo.colors = ['Blue','Red'];
},
function (response) {
console.log('ERROR!!!');
}
);
したがって、いくつかの値でavailableColors
を事前定義することなく、このコードを使用できます。
この例では、色の配列を含むファイルdata.json
を追加しました。
これは非常に単純な例ですが、役立つことを願っています。変更は、ファイルline 118
のdemo.js
から始まります。
選択肢のリストを動的に更新する場合は、refresh-delay
ディレクティブのrefresh
およびui-select-choices
属性を使用できます。
最初の属性は、ご想像のとおり、次のような機能を取得します
refresh="funcAsync($select.search)"
何か入力するたびに呼び出されます。そして、2番目の属性を次のように使用できます。
refresh-delay="0"
推測できるように、refresh
関数のミリ秒単位の遅延の設定に使用されます。デフォルトでは、この値は1000
に設定されています。
プランクを更新したため、独自のバックエンド関数を作成しないことにしました。そのため、最初のui-select
フィールドにred
と入力するだけで機能することを確認できます。値は別の.json
ファイルから取得されます-data1.json
。
希望、それはあなたを助けるでしょう。