【问题标题】:Cascading Dropdown List - Multi Direction级联下拉列表 - 多方向
【发布时间】:2015-07-10 14:57:11
【问题描述】:

首先,我对 AngularJS 很陌生,我已经看到了多个级联下拉列表的实现,但它们没有按照我想要的方式运行和/或我不知道如何修改/扩展它们来做我想做的事情。

也许您可以指出正确的方向或发布示例。我相信它对很多人都有用。

所需功能:多个下拉列表,其中包含关系数据。在所选项目更改时,根据选择更新所有其他下拉列表。

示例 1:3 个下拉菜单。大学排名第一,专业排名第二,学位排名第三。

In most examples when college is selected majors in that college is displayed then when major is selected degrees are shown.我想要的是在选择专业时过滤大学或从第三个下拉列表中选择 PHD 时删除所有没有 PHD 课程的大学或任何没有 PHD 学位的专业。

示例 2:品牌(宝马、奥迪、梅赛德斯等)、款式(敞篷车、轿车、小型货车等)、价格范围(10k-20k、20k-30k、30k-50k 等)

选择品牌时,会显示其样式和价格范围。 选择样式时,会显示已选择样式的品牌,并删除没有商品落在该范围内的价格范围。 选择价格时,会显示该范围内的品牌和款式。

【问题讨论】:

    标签: javascript angularjs drop-down-menu filter cascading


    【解决方案1】:

    这个链接有用吗?

    http://jsfiddle.net/annavester/Zd6uX/

    function AjaxCtrl($scope) {
        $scope.countries = ['usa', 'canada', 'mexico', 'france'];
        $scope.$watch('country', function(newVal) {
            if (newVal) $scope.cities = ['Los Angeles', 'San Francisco'];
        });
        $scope.$watch('city', function(newVal) {
            if (newVal) $scope.suburbs = ['SOMA', 'Richmond', 'Sunset'];
        });
    }
    
    function StaticCtrl($scope) {
        $scope.countries = {
            'usa': {
                'San Francisco': ['SOMA', 'Richmond', 'Sunset'],
                'Los Angeles': ['Burbank', 'Hollywood']
            },
            'canada': {
                'People dont live here': ['igloo', 'cave']
            }
        };
    }
    

    还有另一种使用 ng-change attr 的方法:

    https://stackoverflow.com/a/14386972/3202657

    【讨论】:

    • 很遗憾没有。我见过这样的例子。我正在寻找的几个差异例如: 1-所有下拉菜单都应始终启用。 2- 假设第一个下拉列表是 Apple、Asus、Lenovo 等,第二个是笔记本电脑、台式机、平板电脑等,第三个是价格范围,如 250-500、500-750 和 750+。我希望能够选择 Desktop 以过滤掉没有任何台式计算机的公司,并排除没有台式计算机的价格范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2016-08-13
    • 2012-08-23
    • 2015-01-31
    相关资源
    最近更新 更多