2016-06-05 4 views
0

У меня есть функция, которая устанавливает свойство в объекте в false, если оно истинно и истинно, если оно ложно. Но каждый раз, когда функция запускает объект, это не затрагивается.Как изменить свойство объекта в AngularJS

$scope.menuButtons = [{header: "beaded", isActive: false}, 
         {header: "laced", isActive: false} 
        ] 

$scope.activeButton = function(isActive) { 
    isActive == true ? isActive = false : isActive = true; 
}; 

Вот HTML

<div ng-repeat="b in menuButtons"> 

<div ng-click="activeButton(b.isActive)" class="shop-navbar-button">{{b.header}}</div> 

</div> 

Я использую IsActive значение, чтобы увидеть, если кнопка активна, так что я могу использовать другой класс. По какой-то причине значение isActive в области $ не влияет.

ответ

4

Провод в b вместо b.isActive. Логическое значение просто передается по значению, поэтому повторное присвоение значения не влияет на b.isActive.

+0

Очень ценим! –

2

Я не думаю, что вы можете изменить из этого:

<div ng-click="activeButton(b.isActive)" class="shop-navbar-button">{{b.header}}</div> 

к этому:

<div ng-click="b.isActive=!b.isActive" class="shop-navbar-button">{{b.header}}</div> 

Вы НЕ нужна функция ДОПОЛНИТЕЛЬНОЕ. Он более чистый и более угловатый.

+0

это тоже хорошо –

Смежные вопросы