如何更改对象';AngularJS中的s属性
我有一个函数,它将对象中的属性设置为false(如果为true)和true(如果为false)。然而,每次函数运行时,对象都不会受到影响如何更改对象';AngularJS中的s属性,angularjs,button,Angularjs,Button,我有一个函数,它将对象中的属性设置为false(如果为true)和true(如果为false)。然而,每次函数运行时,对象都不会受到影响 $scope.menuButtons = [{header: "beaded", isActive: false}, {header: "laced", isActive: false} ] $scope.activeButton = function(isActive)
$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>
{{b.header}}
我正在使用isActive值查看按钮是否处于活动状态,以便可以使用其他类。由于某些原因,$scope中的isActive值不会受到影响。传入
b
,而不是b.isActive
。布尔值只是按值传递,因此重新分配值对b.isActive
传入b
而不是b.isActive
没有影响。布尔值只是通过值传递,因此重新分配值对b没有影响。isActive
我认为您可以改变这一点:
$scope.menuButtons = [{header: "beaded", isActive: false},
{header: "laced", isActive: false}
]
$scope.activeButton = function(isActive) {
isActive == true ? isActive = false : isActive = true;
};
<div ng-click="activeButton(b.isActive)" class="shop-navbar-button">{{b.header}}</div>
{{b.header}
为此:
<div ng-click="b.isActive=!b.isActive" class="shop-navbar-button">{{b.header}}</div>
{{b.header}
您将不需要辅助功能。它更干净,角度也更大。我想你可以改变这一点:
<div ng-click="activeButton(b.isActive)" class="shop-navbar-button">{{b.header}}</div>
{{b.header}
为此:
<div ng-click="b.isActive=!b.isActive" class="shop-navbar-button">{{b.header}}</div>
{{b.header}
您将不需要辅助功能。它更干净,角度更大。非常感谢!非常感谢!