这个角度OR表达式可以缩短吗?

时间:2015-11-18 15:14:11

标签: angularjs

有没有简单的方法可以缩短这个表达式?

     <li ng-if="viewingContext.name == 'Business A' || viewingContext.name == 'Business B'" ui-sref-active="active">
       <a ui-sref="app.page1">
         <span>Page 1</span>
       </a>
     </li>

谢谢!

2 个答案:

答案 0 :(得分:2)

是!!!!把那个坏孩子送到你的控制器:

<li ng-if="shouldDisplayBasedOnViewingContext()" ui-sref-active="active">
   <a ui-sref="app.page1">
     <span>Page 1</span>
   </a>
</li>

控制器:

$scope.shouldDisplayBasedOnViewingContext() = function shouldDisplayBasedOnViewingContextFn() {
   return $scope.viewingContext.name == 'Business A' || $scope.viewingContext.name == 'Business B'
}

答案 1 :(得分:1)

我第二次将逻辑移动到控制器。

此外,如果您最终可能需要检查两个以上的项目,您可以列出它们并检查是否包含:

['Business A', 'Business B'].includes(input)      // only works in ES6
['Business A', 'Business B'].indexOf(input) != -1 // works in ES5