Ваш код должен выглядеть как
$scope.myFunction = function(indexParent, childrenLength) {
// close all inner accordion tabs
for(i=0; i < childrenLength; i++) {
$scope.lettersandnumbers[indexParent].things[i].open = !$scope.lettersandnumbers[indexParent].things[i].open;
}
// toggle parent tab
$scope.lettersandnumbers[indexParent].open = !$scope.lettersandnumbers[indexParent].open;
}
!
был на левой стороне задания
EDIT:
Доказательство того, что вы не можете использовать !
на левой стороне:
var a = true;
console.log(a);
!a = a;
РЕДАКТИРОВАТЬ 2:
$scope.myFunction = function(indexParent, childrenLength) {
// First close the outer tab
$scope.lettersandnumbers[indexParent].open = !$scope.lettersandnumbers[indexParent].open;
// Close all inner tabs if the outer tab is closed
for(i=0; i < childrenLength; i++) {
$scope.lettersandnumbers[indexParent].things[i].open = !$scope.lettersandnumbers[indexParent].open ? false : $scope.lettersandnumbers[indexParent].things[i].open;
}
}
Здесь я использую троичный оператор , чтобы определить, должны ли внутренние вкладки закрываться или нет.
Я видел в вашем коде, что myFunction
вызывается только для кнопки, вы должны найти способ заставить его работать, когда вы нажимаете на внешнюю гармошку