角度有效ng-class无法正常工作

时间:2017-06-01 01:29:12

标签: javascript angularjs ionic-framework

我有一些角度代码,应该只为所点击的链接的父元素分配一个类。这似乎最初工作,但稍后点击一下,代码似乎卡住了。以下是我正在使用的示例代码:

<div ng-repeat="item in items track by item.id" class="row" ng-class="{'active': selectItem.this == item.id}">
<a ng-click="selectItem.this = item.id">Move to top</a> {{item.name}}

$scope.selectItem = { this: -1 };

http://plnkr.co/edit/jhahff7OyVTVt615BBp3?p=preview

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

您只需要将整个文本设为可点击的DOM

<div ng-repeat="item in items track by item.id" class="row" ng-class="{'active': selectItem.this == item.id}">
  <a ng-click="selectItem.this = item.id">Move to top <span ng-bind="item.name"></span></a> 
</div>

答案 1 :(得分:0)

我将 a 标记替换为 p 标记,并将点击事件绑定到 p 标记。通过这种重构,我没有看到任何滞后或奇怪的行为。

<body ng-controller="MainCtrl">
  <div ng-repeat="item in items track by item.id" class="row" 
       ng-class="{'active': selectItem.this == item.id}">
       <p style="cursor: pointer;" ng-click=selectedItem()>
           Move to top {{item.name}}
       </p> 
  </div>
</body>

在控制器中

$scope.selectItem = {};
$scope.selectedItem = function () {
  $scope.selectItem.this = this.item.id;
};

如果您仍然发现任何问题,请与我们联系。