如何在AngularJS

时间:2016-06-05 22:42:59

标签: angularjs button

我有一个函数将对象中的属性设置为false(如果为true),如果为false则为true。然而,每次函数运行时,对象都不会受到影响。

$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值来查看该按钮是否处于活动状态,因此我可以使用其他类。由于某种原因,$ scope中的isActive值不会受到影响。

2 个答案:

答案 0 :(得分:4)

传递b代替b.isActive。布尔值只是按值传递,因此重新赋值不会对b.isActive产生影响。

答案 1 :(得分: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>

你不需要辅助功能。它更清洁,更有棱角。