我已经阅读了很多有关SO的问题,无论出于何种原因,发布的解决方案均无法正常工作。我有要ng-repeat处理的项目列表,我想禁止单击两个项目。

<tr ng-repeat="itm in jtc.jobTypes" ng-click="jtc.showAdvanced(itm); setSelected(itm.JobTypeId)" ng-disabled="itm.JobTypeId==-1" ng-class="{selected: itm.JobTypeId === idSelected}">

最佳答案

仅表单元素(文本框,按钮等)可以在其上设置disabled属性。

要禁用特定项目的点击事件,请在点击处理程序中检查您的项目ID。

showAdvanced(itm) {
  if (itm.JobTypeId != -1) {
    // do something
  }
}


此外,您不应在ng-click处理程序中调用多个函数。制作一个单独的单击处理程序函数,然后从内部调用其他函数。

<tr ng-repeat="itm in jtc.jobTypes" ng-click="onItemClicked(itm)">


和...

onItemClicked(item) {
  if (itm.JobTypeId != -1) {
    showAdvanced(itm);
    setSelected(itm.JobTypeId);
  }
}

09-26 05:27