Javascript 两个下拉过滤器。第一个确定第二个中的信息
我不知道如何构建它,尽管我已经花了几个小时尝试。我的代码似乎有点接近,但我无法将所选内容从HTML传递回控制器 我的角度代码: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
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
vssetSecondary分类
<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>