Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 使用AngularJS根据JSON数据动态更新选择框_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 使用AngularJS根据JSON数据动态更新选择框

Javascript 使用AngularJS根据JSON数据动态更新选择框,javascript,json,angularjs,Javascript,Json,Angularjs,我对AngularJS非常陌生,有以下问题:我有两个选择框,我用存储在外部JSON文件中的数据填充它们。我想根据在第一个框中选择的项目动态填充第二个框。第一个框中的每个项目都有一个名为relation的键。我想使用此键的值作为触发器,动态更新第二个框中的可用项 有人能帮我吗?我已经试着写了一个函数,但它不起作用。提前准备好。 这是JSON结构: { "filterElements": [ { "parameters": [ {

我对AngularJS非常陌生,有以下问题:我有两个选择框,我用存储在外部JSON文件中的数据填充它们。我想根据在第一个框中选择的项目动态填充第二个框。第一个框中的每个项目都有一个名为relation的键。我想使用此键的值作为触发器,动态更新第二个框中的可用项

有人能帮我吗?我已经试着写了一个函数,但它不起作用。提前准备好。 这是JSON结构:

{
"filterElements": [
    {
        "parameters": [
            {
                "paraName": "paraOne",
                "relation": "default"
            },
            {
                "paraName": "paraTwo",
                "relation": "default"
            },
    {
                "paraName": "paraThree",
                "relation": "defaultshort"
            }
        ]
    },
    {
        "relations": [
            {
                "defaultrelation": 
        [
                    "equals",
                    "does not equal",
                    "greater than",
                    "less than"
                ]
            },
            {
                "defaultshort": 
        [
                    "equals",
                    "does not equal"
                ]
            }
        ]
    }
]
}


基于您的小提琴,您缺少引导应用程序。例如:

<body ng-app="list">
 ...
</body>

完成此操作后,您的控制器将被执行,您的请求将被提出,您可以将数据绑定到视图。

我知道了。如果有人感兴趣,以下是解决方案:

$scope.change = function (paraSelection) {
$scope.filteredrelations = [];
for(var key in $scope.relations){
  if(angular.isDefined($scope.relations[key][paraSelection.relation])){
    $scope.filteredrelations = $scope.relations[key] paraSelection.relation];
        }
    }
};
完整的工作示例可在此处找到:

你试过什么js/你的控制器是什么样子的?您好,对不起,可能解释不太清楚。我现在在[Plunker]()上上传了这些文件,所以你可以真正了解我的意思。我的问题是,我想根据第一个下拉列表中所选项目的JSON数据,用项目填充第二个下拉列表。例如:如果用户选择paraThree,则第二个框中应填写equals而不是equals,因为paraThree的JSON键关系在JSON中定义了defaultshort关系。
$scope.change = function (paraSelection) {
$scope.filteredrelations = [];
for(var key in $scope.relations){
  if(angular.isDefined($scope.relations[key][paraSelection.relation])){
    $scope.filteredrelations = $scope.relations[key] paraSelection.relation];
        }
    }
};