Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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根据选择的单选答案重复隐藏单选按钮_Javascript_Html_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Javascript Ng根据选择的单选答案重复隐藏单选按钮

Javascript Ng根据选择的单选答案重复隐藏单选按钮,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,我需要一些帮助,试图找出如何隐藏答案,如果其他答案被选中时,项目在ng重复块。例如,在下面的代码中。如果用户在问题1中选择了答案11,则在问题2中,只有答案21可从问题下列出的可能答案中获得 var-app=angular.module('plunker',[]); app.controller('MainCtrl',['$scope', 职能($范围){ $scope.questions=[{ questiontxt:'请选择您的年龄范围', qid:1234, 答复:[{ answertx

我需要一些帮助,试图找出如何隐藏答案,如果其他答案被选中时,项目在ng重复块。例如,在下面的代码中。如果用户在问题1中选择了答案11,则在问题2中,只有答案21可从问题下列出的可能答案中获得

var-app=angular.module('plunker',[]);
app.controller('MainCtrl',['$scope',
职能($范围){
$scope.questions=[{
questiontxt:'请选择您的年龄范围',
qid:1234,
答复:[{
answertxt:“answer11”,
援助:83493
}, {
answertxt:“answer12”,
援助:1223
}, {
answertxt:“answer13”,
援助:1223
}]
},
{
questiontxt:'请选择您最喜欢的活动',
qid:5678,
答复:[{
answertxt:“answer21”,
援助:90886
}, {
answertxt:“answer22”,
援助:67107
}]
},
{
问题TXT:“请选择您最喜欢的食物”,
qid:4321,
答复:[{
answertxt:“answer31”,
援助:32342
}, {
answertxt:“answer32”,
援助:79130
}]
}
];
}
]);

安古拉斯普朗克
文件。写(“”);

Q{{$index+1}。{{question.questiontxt}} {{answer.answertxt}
可以添加如下属性:

disables: [{ selectedAnswer: 83493,otherQ: 5678, otherAnswerId: 90886 }]
对每个问题以及对每个收音机的
ng取消
ng更改

方法是查看上面所有的
禁用
,然后检查相应的其他问题和其他答案,查看当前选择的答案是否与禁用对象中的
selectedAnswer
匹配

var-app=angular.module('plunker',[]);
app.controller('MainCtrl',['$scope',
职能($范围){
$scope.disableMatches=功能(问题、答案){
让selectedId=question.selectedAnswer;
问题.禁用.forEach(函数(o){
让otherQ=$scope.questions.find(函数(q){
返回q.qid==o.otherQ
});
让otherAnswer=otherQ.Answer.find(函数(ans){
返回ans.aId==o.otherAnswerId
})
otherAnswer.disabled=selectedId==o.selectedAnswer;
});
}
$scope.questions=[{
questiontxt:'请选择您的年龄范围',
qid:1234,
禁用:[{
选择答案:83493,
其他问题:5678,
其他答复者ID:90886
}],
答复:[{
answertxt:“answer11禁用回答21”,
援助:83493
}, {
answertxt:“answer12”,
援助:1223
}, {
answertxt:“answer13”,
援助:1223
}]
},
{
questiontxt:'请选择您最喜欢的活动',
qid:5678,
答复:[{
answertxt:“answer21”,
援助:90886
}, {
answertxt:“answer22”,
援助:67107
}]
},
{
问题TXT:“请选择您最喜欢的食物”,
qid:4321,
答复:[{
answertxt:“answer31”,
援助:32342
}, {
answertxt:“answer32”,
援助:79130
}]
}
];
}
]);

安古拉斯普朗克
文件。写(“”);

Q{{$index+1}。{{question.questiontxt}} {{answer.answertxt}
可以添加如下属性:

disables: [{ selectedAnswer: 83493,otherQ: 5678, otherAnswerId: 90886 }]
对每个问题以及对每个收音机的
ng取消
ng更改

方法是查看上面所有的
禁用
,然后检查相应的其他问题和其他答案,查看当前选择的答案是否与禁用对象中的
selectedAnswer
匹配

var-app=angular.module('plunker',[]);
app.controller('MainCtrl',['$scope',
职能($范围){
$scope.disableMatches=功能(问题、答案){
让selectedId=question.selectedAnswer;
问题.禁用.forEach(函数(o){
让otherQ=$scope.questions.find(函数(q){
返回q.qid==o.otherQ
});
让otherAnswer=otherQ.Answer.find(函数(ans){
返回ans.aId==o.otherAnswerId
})
otherAnswer.disabled=selectedId==o.selectedAnswer;
});
}
$scope.questions=[{
questiontxt:'请选择您的年龄范围',
qid:1234,
禁用:[{
选择答案:83493,
其他问题:5678,
其他答复者ID:90886
}],
答复:[{
answertxt:“answer11禁用回答21”,
援助:83493
}, {
answertxt:“answer12”,
援助:1223
}, {
answertxt:“answer13”,
援助:1223
}]
},
{
questiontxt:'请选择您最喜欢的活动',
qid:5678,
答复:[{
answertxt:“answer21”,
援助:90886
}, {
answertxt:“answer22”,
援助:67107
}]
},
{
问题TXT:“请选择您最喜欢的食物”,
qid:4321,
答复:[{
answertxt:“answer31”,
援助:32342
}, {
answertxt:“answer32”,
援助:79130
}]
}
];
}
]);

安古拉斯普朗克
文件。写(“”);

Q{{$index+1}。{{question.questiontxt}} {{answer.answertxt}
一个简单的方法是使用两个新数组“隐藏”和“删除”来扩充您的“答案”数据结构,这两个数组在选择后将禁用或按情况删除其他问题的目标答案。比如说,

...
Answer: [{
  answertxt: "answer11",
  aId: 83493,
  hides: [{
    qid: 5678,
    aId: 67107
  }],
  removes: [{
    qid: 4321,
    aId: 32342
  }]
},
...
answer11隐藏answer22并删除answer31。
你的HTMLW