angularjs 使用过滤器/函数获取枚举数据

尽量不要用函数

<!DOCTYPE html>
<html ng-app="my_app">
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
		<script type="text/javascript" src="angular.min-1.69.js"></script>
		<script type="text/javascript">
			var app = angular.module("my_app", []);
			app.controller('my_controller', function($scope) {
				window.scope=$scope;
				/* 班级信息 */
				$scope.selectedClass = 'c2';
				$scope.classes = [{
					id: 'c1',
					name: '一班',
				}, {
					id: 'c2',
					name: '二班',
				}];
				/* 学生信息 */
				$scope.students = [{
						id: 's1',
						name: '张三',
						gender: '0',
					},
					{
						id: 's2',
						name: '李四',
						gender: '1',
					},
					{
						id: 's3',
						name: '王五',
						gender: '2',
					}
				];
				/* 性别 */
				$scope.genders = [{
					id: 0,
					remark: '女'
				}, {
					id: 1,
					remark: '男'
				}, {
					id: 2,
					remark: '未知'
				}];
				/* 使用函数修改性别,只要$scope中有对象内容发送变化就会触发,建议不要使用 */
				$scope.getGender=function(gender){
					console.log('getGender');
					var flag = '';
					$.each($scope.genders, function(i, item) {
						if (gender == item.id) {
							flag = item.remark;
							return false;
						}
					});
					return flag;
				}
			});
			/* 使用过滤器修改性别,用window.scope解决过滤器中使用$scope对象/对象集合 */
			app.filter('genderFilter', function() {
				return function(input) {
					console.log('genderFilter');
					var flag = '';
					$.each(window.scope.genders, function(i, item) {
						if (input == item.id) {
							flag = item.remark;
							return false;
						}
					});
					return flag;
				};
			});
		</script>
	</head>
	<body ng-controller="my_controller">
		<div>
			<select ng-model="selectedClass" ng-options="s.id as s.name for s in classes">
			</select>
		</div>
		<div>
			<ul>
				<!-- 使用过滤器修改性别 -->
				<li ng-repeat="item in students" id="{{item.id}}">
				{{item.name}}-{{item.gender|genderFilter}}
				</li>
			</ul>
		</div>
		<div>
			<ul>
				<!-- 使用函数修改性别 -->
				<li ng-repeat="item in students" id="{{item.id}}">
				{{item.name}}-{{getGender(item.gender)}}
				</li>
			</ul>
		</div>
	</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值