您好,我有以下JSON

$scope.Facilities=
[
    {
        Name: "-Select-",
        Value: 0,
        RegionNumber: 0
    },

    {
        Name: "Facility1",
        Value: 1,
        RegionNumber: 1

    },

    {
        Name: "Facility2",
        Value: 2,
        RegionNumber: 1
    },

    {
        Name: "Facility3",
        Value: 3,
        RegionNumber: 2
    }
];

$scope.Regions=
[
    {
        Name: "-Select-",
        RegionNumber: 0
    },

    {
        Name: "USA",
        RegionNumber: 1
    },

    {
        Name: "Mexico",
        RegionNumber: 2
    }
];


我的应用程序中将有两个DropdownLists,其中将为其分配这些Json之一。

每当您选择一个地区时,就会触发ng-change。我想要的是使Facility DDL更新其值。它只会显示其RegionNumber等于所选Region的RegionNumber的设施。

我怎样才能做到这一点?我正在使用Angular JS,MVC ...

注意:-Select-值必须始终出现,即使它的值为零且不等同于所选的Region。

最佳答案

虽然像greengrassbluesky这样的数据结构可以简化结果,但您可以通过利用JavaScript过滤的onchange来完成同一件事

$scope.Facilities = masterFacilities.filter(function (el) {
        return regionNumber = el.RegionNumber == $scope.SelectedRegion || el.RegionNumber == 0;
    });


这是一个fiddle,其中包含使用您的列表的示例。

10-08 00:53