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