0
我試圖根據其他問題的答案對ng-repeat內的問題進行條件可見性。如果用戶來自加拿大然後顯示省份,如果用戶來自美國,則顯示州。我目前的嘗試是這樣的ng顯示內:ng-repeat內的條件可見性
survey[question.otherquestionToTest - 1].answer == question.testedCondition
我試圖用描述性的術語寫它來解釋我正在嘗試做什麼。我仍然熟悉Angular,而且我不確定是否有更好的方法來完成這項工作。任何人都可以提出任何其他的選擇,如果這似乎是一個低效率的方式來處理這個問題。
下面是我的控制器和html的例子。
控制器
angular.module('myApp')
.controller('UserInfoCtrl', function ($scope) {
$scope.userInfo = {
userSurvey: [
{ // Question 8
question: 'What country do you live in?',
answer: '',
options: [
'Canada',
'USA'
]
},{ // Question 9
visibilityDependentOnQuestion: 8,
visibilityCondition: 'Canada',
question: 'What province do you live in?',
answer: '',
options: [
'Alberta',
'British Columbia',
'Manitoba',
'New Brunswick'
]
},{ // Question 10
visibilityDependentOnQuestion: 8,
visibilityCondition: 'USA',
question: 'What state do you live in?',
answer: '',
options: [
'Alabama',
'Alaska',
'Arizona',
'Arkansas'
]
}
]
};
});
VIEW
<form class="form-horizontal">
<div class="form-group ng-hide"
ng-repeat="(key, userInquery) in userInfo.userSurvey as survey"
ng-show="survey[userInquery.visibilityDependentOnQuestion - 1].answer == userInquery.visibilityCondition">
<label class="col-sm-4 control-label text-right">{{userInquery.question}}</label>
<div class="col-sm-4">
<select class="form-control" ng-model="userInquery.answer">
<option ng-repeat="option in userInquery.options">{{option}}</option>
</select>
</div>
</div>
</form>
如果我使用的是什麼這個NG-重複建設一個大型問題集?每個問題可能具有不同的可見性依賴關係 –
您可以在不同模型的基礎上添加n個過濾器。 請查看此答案http://stackoverflow.com/a/13216282/3226814瞭解更多信息 –