0

誰かがこの挑戦を手伝ってくれることを願っています。

2 つのビルドの個別のドロップダウンで使用されている空港の配列が 1 つあります。

<select data-ng-model="flightData.origin" data-ng-options="airport.code as airport.label for airport in flightData.airports" name="origin"></select>

<select data-ng-model="flightData.destination" data-ng-options="airport.code as airport.label for airport in flightData.airports" name="destination"></select>

これらのリストには、明らかに同じオプションがあります。私がやりたいのは、たとえばオリジンで選択して、宛先ドロップダウンから"Sydney"削除することです。"Sydney"

参考までに、これは空港データがどのように見えるかの例です。

this.airports = [{
    code: "TSV",
    label: "Townsville",
}, {
    code: "PER",
    label: "Perth",
}, {
    code: "BNE",
    label: "Brisbane",
}, {
    code: "MEL",
    label: "Melbourne",
}, {
    code: "KGI",
    label: "Kalgoorlie",
}, {
    code: "SYD",
    label: "Sydney",
},{
    code: "LAX",
    label: "Los Angeles",
}, {
    code: "JFK",
    label: "New York",
}, {
    code: "DEL",
    label: "New Dehli",
}];

2 つの別個の配列 (出発地用に 1 つ、目的地用に 1 つ) が必要になる可能性が高いことは理解していますが、それにアプローチする方法がわかりません。

ありがとう!

4

1 に答える 1

0

を使用ng-change し、2 つのリストが必要です。

<select data-ng-model="flightData.airports_origin" ng-change="changeOrigin()" data-ng-options="airport.code as airport.label for airport in flightData.airports" name="origin"></select>

<select data-ng-model="flightData.airports_destination"  data-ng-options="airport.code as airport.label for airport in flightData.airports" name="origin"></select>

filterFilterコントローラーで、使用可能な目的地の空港リストで選択した空港を挿入して検索し、削除します。

// in your controller
$scope.airports_origin      = angular.copy(this.airport); 
$scope.airports_destination = angular.copy(this.airport);
$scope.changeOrigin = function(){
    var selected_origin = flightData.origin;
    var destination_airport = filterFilter(this.airports_destination,{'code':selected_origin.code})[0];
    $scope.airports_destination.splice($scope.airports_destination.indexOf(destination_airport),1);

}
于 2015-02-13T03:45:33.623 に答える