Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据ng grid selectedItem[0]更改下拉选项_Javascript_Jquery_Html_Angularjs_Twitter Bootstrap - Fatal编程技术网

Javascript 根据ng grid selectedItem[0]更改下拉选项

Javascript 根据ng grid selectedItem[0]更改下拉选项,javascript,jquery,html,angularjs,twitter-bootstrap,Javascript,Jquery,Html,Angularjs,Twitter Bootstrap,首先,我要感谢您花时间阅读本文,我很抱歉没有粘贴我的代码,我所做的工作是在一个没有互联网连接的服务器上进行的。我想我可以解释我所问的问题,也许还可以很好地键入一些伪代码,让大家理解我的观点 我有一个带有角度控制器的html页面。HTML页面使用ng网格显示表示数据库中的行的项目列表。当选择列表中的项目且下拉列表为自动提交时,将显示下拉列表 ng-change="processOptions(dropdown_options)" 所选项目是控制器中作用域的一部分: $scope.selected

首先,我要感谢您花时间阅读本文,我很抱歉没有粘贴我的代码,我所做的工作是在一个没有互联网连接的服务器上进行的。我想我可以解释我所问的问题,也许还可以很好地键入一些伪代码,让大家理解我的观点

我有一个带有角度控制器的html页面。HTML页面使用ng网格显示表示数据库中的行的项目列表。当选择列表中的项目且下拉列表为自动提交时,将显示下拉列表

ng-change="processOptions(dropdown_options)"
所选项目是控制器中作用域的一部分:

$scope.selectedItem=[];
$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;
}
该下拉列表将根据所选网格中的项目显示。。精心挑选的

ng-show="selectedItem[0]"
下拉选项在控制器中定义为:

$scope.dropdownOptions = [
    {label: "Option Blue", value: "BLUE"},        
    {label: "Option Green", value: "GREEN"},
    {label: "Option Yellow", value: "YELLOW"},
];
上述措施效果良好。现在我要做的是使选项以selectedItem[0].color中的值为条件

当选择EdItem[0].color==“蓝色”时,我只希望显示绿色和黄色选项。。依此类推,如果color=“GREEN”,则选项中仅显示蓝色和黄色


我如何做到这一点?当定义了调用函数的selectedItem[0]时,是否还有另一个ng控制器可以触发?

您正在寻找的是

具有您需要的功能。

事实上,我无法让ng筛选器或一般筛选器正常工作,因为。。我找到的所有例子都根据一些文本过滤了列表。。包括部分匹配或完全匹配文本的项目。在这种情况下,我需要它来排除精确匹配。ng filter建议将我引向了正确的方向,不久之后,我最终提出了以下解决方案,该解决方案有效且不会干扰标记中的任何其他操作。这似乎有点笨拙,所以如果有一个更好的解决方案,确实涉及ng过滤器,请填写我

ng-options="opt.label for opt in filterOptions()"
然后在控制器中:

$scope.selectedItem=[];
$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;
}