angularjs - Angularjs表达式检查“数组中”
问题描述
我正在寻找最流畅的方法来做这样的事情:
<span x-ng-show="stuff && stuff.id in [1,2,5]">{{stuff.name}}</span>
<span x-ng-show="stuff && stuff.id in [3,4,6]">{{stuff.fullName}}</span>
我知道这在 AngularJS 中不起作用,但我希望你明白我想要做什么。什么是最好的可读解决方案?
不幸的是,我需要一个同样适用于 IE11 的解决方案
解决方案
如果我理解正确,这应该是一个简单的检查数组是否包含某些东西
[1,2,5].includes(stuff.id)
工作示例
angular.module('app', [])
.controller('ctrl', function($scope) {
$scope.stuff = {
id: 5,
name: 'foo'
}
$scope.toggle = function() {
$scope.stuff.id = $scope.stuff.id === 5 ? 8 : 5;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<span x-ng-show="stuff && [1,2,5].includes(stuff.id)">{{stuff.name}}</span>
<button ng-click="toggle()">Toggle id between 5 and 8</button>
<pre>stuff.id = {{stuff.id}}</pre>
</div>
对于 < IE11
angular.module('app', [])
.controller('ctrl', function($scope) {
$scope.stuff = {
id: 5,
name: 'foo'
}
$scope.toggle = function() {
$scope.stuff.id = $scope.stuff.id === 5 ? 8 : 5;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<span x-ng-show="stuff && [1,2,5].indexOf(stuff.id) > -1">{{stuff.name}}</span>
<button ng-click="toggle()">Toggle id between 5 and 8</button>
<pre>stuff.id = {{stuff.id}}</pre>
</div>
推荐阅读
- javascript - 笑话/酶 expect.any(ReactComponent)
- sql - 从 SELECT 语句中导出数据
- google-cloud-platform - 在 BigQuery 目标中导出日志接收器 - Google Cloud Platform
- r - R中的性别检测
- json - 将对象转换为数组
- asp.net-core - 使用 Windows 身份验证的自定义状态代码页
- python - 将图像添加到 tkinter 网格但未显示
- angular - ng2-charts - Tolltip color dont match line color
- c++ - 未能在 SFINAE 中将概念类型识别为 bool
- r - 那么,Carets jumpBackward 究竟是如何工作的呢?