如何使用ng-repeat选择所有元素,但排除所有具有类bookmaker-disabled的元素。

Screen shot

我正在使用:element.all(by.repeater('bookmaker in vm.bookmakers'))

没有元素bookmaker-disabled类的结果需要在此处添加什么?

最佳答案

通过查看屏幕快照,可以在bookmaker.disabled为true时添加“ bookmaker-disabled”类。根据您的代码,您可以添加ng-if="!bookmaker.disabled"仅在未禁用时显示,并删除已禁用的元素。在这种情况下,您无需添加类。

或者,您可以过滤掉禁用博彩公司的结果,例如:
<div ng-repeat='bookmaker in vm.bookmakers | filter: {disabled: false}'>

或者,如果您正在寻找控制器,则可以在其内部使用map reduce。

如果您正在使用量角器,这可能会起作用:

element.all(by.repeater('bookmaker in vm.bookmakers')).filter(function(elem, index) {
  return elem.getAttribute('class').then(function(classes) {
    return classes.indexOf('bookmaker-disabled') === -1;
  });
})

09-25 16:29