У меня есть 3 флажка:
<div class = "conditions" data-ng-controller = "SignUpController as vm">
<div class = "conditions-content">
Lorem Ipsum ...
</div>
<ul>
<li><input type = "checkbox" name = "condition1"></li>
<li><input type = "checkbox" name = "condition2"></li>
<li><input type = "checkbox" name = "condition3"></li>
</ul>
</div>
И контроллер Angular 1:
function SignUpController() {
var vm = this;
vm.start = function () {
}
}
Когда все 3 флажка установлены, мне нужно:
1. Скройте div с классом conditions;
.
2. Вызовите функцию start() на контроллере.
Это должно быть, чтобы все условия были истинными.
Как я могу это сделать?
Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте обработчик ng-change на всех 3 входах, которые будут проверять их значения (которые установлены через ng-model):
<div class = "conditions" ng-class = "{hidden: vm.hidden}" data-ng-controller = "SignUpController as vm">
<div class = "conditions-content">
Lorem Ipsum ...
</div>
<ul>
<li><input type = "checkbox" ng-model = "vm.cond1" ng-change = "vm.check()" name = "condition1"></li>
<li><input type = "checkbox" ng-model = "vm.cond2" ng-change = "vm.check()" name = "condition2"></li>
<li><input type = "checkbox" ng-model = "vm.cond3" ng-change = "vm.check()" name = "condition3"></li>
</ul>
</div>
И в контроллере:
function SignUpController() {
var vm = this;
vm.hidden = false;
vm.start = function () {
};
vm.check = function () {
if (vm.cond1 && vm.cond2 && vm.cond3) {
vm.hidden = true;
vm.start();
}
}
}
Вы также можете использовать ng-show / ng-hide / ng-if, чтобы условно скрыть контейнер <div>.
да, зависит от того, чего вы хотите достичь, добавлю пометку о них в ответ
Что ты пробовал? Что-то вроде приписывания
ng-modelфлажкам и проверки их значения? (Не обижайтесь, но удивитесь, что пользователь с таким представителем задает такой вопрос ..)