【问题标题】:How to change an object's property in AngularJS如何在 AngularJS 中更改对象的属性
【发布时间】:2016-06-06 07:19:45
【问题描述】:

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

$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 值不会受到影响。

【问题讨论】:

    标签: angularjs button


    【解决方案1】:

    传入b 而不是b.isActive。布尔值只是按值传递,因此重新分配值对b.isActive 没有影响。

    【讨论】:

    • 非常感谢!
    【解决方案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>
    

    您将不需要辅助功能。它更干净,更有棱角。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多