Javascript 两个下拉过滤器。第一个确定第二个中的信息

Javascript 两个下拉过滤器。第一个确定第二个中的信息,javascript,angularjs,drop-down-menu,underscore.js,Javascript,Angularjs,Drop Down Menu,Underscore.js,我不知道如何构建它,尽管我已经花了几个小时尝试。我的代码似乎有点接近,但我无法将所选内容从HTML传递回控制器 我的角度代码: var Categories = Parse.Object.extend("bizCategories"); $scope.categories = [ {category: "Food and Drink"}, {category: "Healthcare"}, {catego

我不知道如何构建它,尽管我已经花了几个小时尝试。我的代码似乎有点接近,但我无法将所选内容从HTML传递回控制器

我的角度代码:

 var Categories = Parse.Object.extend("bizCategories");

        $scope.categories = [
            {category: "Food and Drink"},
            {category: "Healthcare"},
            {category: "Recreation"},
            {category: "Service"},
            {category: "Shops"},
            {category: "Travel"}
        ]

        $scope.setPrimary = function (category) {
            $scope.offer.primary = category;
            $scope.secondaryCategories(category);
        };

        $scope.secondaryCategories = function(category){
            var Secondary = new Parse.Query(Categories);
            Secondary.limit(1000);
            Secondary.find({
                success:function(list){
                    $scope.SecondaryCategories = _.uniq(_.filter(_.map(list, function(item){
                        return{primary: item.get('secondary')
                        }}
                    )),'primary',true)
                    console.log($scope.SecondaryCategories);
                },
                error: function(error){alert("A mistake was made.");
                }
            })
        }
我的html:

  <select id= 'primary' ng-model="offer.primary" ng-options="XXX.category for XXX in categories"
                ng-click= setPrimary(category)>
            <option value="">Primary Business Category</option>
        </select>

        <select id= 'secondary' ng-model="offer.secondary" ng-disabled="!offer.primary"
                ng-options="XXX.category for XXX in SecondaryCategories" ng-click="setSecondary('XXX.category')">
            <option value="">Secondary Business Category</option>
        </select>

主要业务类别
次要业务类别
您将看到,我在html中为ng选项选择了XXX。我之所以选择它,是因为从教程中我可以看出,把它称为任何特别的东西都是武断的,我把这个XXX作为一个例子,而不是在这个问题上。此外,我需要从第一个下拉列表中获得信息,以便转到第二个下拉列表(类别)的函数,但显示为未定义

数据来源:


看起来您正试图在选择1时设置另一个下拉列表。您应该使用而不是
ng单击

尝试:-


主要业务类别
次要业务类别

由于您的
ng型号
已绑定到
offer.primary
,因此您可以避免执行
$scope.offer.primary=category因为ng模型已经设置好。

谢谢,ng更改对于将下拉列表中的选定值传递到模型非常有用。关于修复secondaryCategories函数以便在第二个下拉列表中进行第二轮过滤,有什么指导吗?@rashadb您在问题中没有提到这一点。这有什么问题,你在那里做什么?这回答了你原来的问题吗?PSL-谢谢你回来和我在一起。它回答了部分问题。我现在知道,无论我选择什么,都会进入set主函数。但是,我无法将这些信息发送到secondaryCategories函数,这是我正在尝试做的主要事情。昨晚我发布了一个关于这个的后续报道。问题是如何在第一个下拉列表中选择offer.primary,以编程方式替换secondaryCategories函数中硬编码为“Travel”的内容。谢谢你的帮助!你的问题很不清楚。你是否有一个演示来展示这个问题。如果没有,请让我知道我将删除我的答案。哦,你有一个打字错误
setSecondary
vs
setSecondary分类
    <select id= 'primary' ng-model="offer.primary" ng-options="XXX.category for XXX in categories"
            ng-change= setPrimary(category)>
        <option value="">Primary Business Category</option>
    </select>

    <select id= 'secondary' ng-model="offer.secondary" ng-disabled="!offer.primary"
            ng-options="XXX.category for XXX in SecondaryCategories" ng-change="setSecondary('XXX.category')">
        <option value="">Secondary Business Category</option>
    </select>