首先,请允许我说感谢您花时间阅读本文,我很抱歉没有粘贴我的代码,我所做的工作是在没有互联网连接的服务器上。我想我可以解释一下我在问什么,也许可以输入一些伪代码,以便明确我的观点。
我有一个带角度控制器的html页面。 HTML页面使用ng-grid显示表示数据库中行的项目列表。当选择列表中的项目并且下拉列表是自动提交
时,将显示下拉列表ng-change="processOptions(dropdown_options)"
选定项目是控制器范围的一部分:
$scope.selectedItem=[];
下拉列表显示基于网格中所选项目的选择。
ng-show="selectedItem[0]"
下拉选项在控制器中定义为:
$scope.dropdownOptions = [
{label: "Option Blue", value: "BLUE"},
{label: "Option Green", value: "GREEN"},
{label: "Option Yellow", value: "YELLOW"},
];
以上运作良好。现在我想做的是使选项以selectedItem [0] .color
中的值为条件当selectedItem [0] .color ==" BLUE"我只想要绿色和黄色选项来显示...等等,如果颜色="绿色"然后只有BLUE和YELLOW出现在选项中。
我如何做到这一点?当定义了调用函数的selectedItem [0]时,是否有另一个ng控制器可以被触发?
答案 0 :(得分:1)
您正在寻找的是ng-filter。
答案 1 :(得分:1)
ng-filter具有您需要的功能。
答案 2 :(得分:1)
实际上,我无法通常使用ng-filter或过滤器来工作,因为......我发现的所有示例都根据某些文本过滤了列表..包括部分匹配或完全匹配文本的项目。在这种情况下,我需要它来排除完全匹配。 ng-filter建议让我朝着正确的方向前进,最后不久之后,我想出了以下解决方案,该解决方案有效并且不会干扰标签中的任何其他操作。这对我来说似乎有些麻烦,所以如果有一个更好的解决方案涉及ng-filter,请填写我。
ng-options="opt.label for opt in filterOptions()"
然后在控制器中:
$scope.filterOptions = function() {
if ($scope.selectedItem[0]) {
if ($scope.selectedItem[0].color === "GREEN") {
$scope.dropdownOptions = [
{label: "Option Blue", value: "BLUE"},
{label: "Option Yellow", value: "YELLOW"}
]
}
else if .....and so on {
}
}
return $scope.dropdownOptions;
}