angularjs directive实现控件过滤器功能

1)html代码

<select ng-model="ColumnModel.Category" 
ng-options="s.Code as s.Name for s in CategoryList" 
ng-change="categoryChange()" to-string>
</select>

2)angularjs代码

app.directive("toString", function () {
            return {
                restrict: "A",
                require: "ngModel",
                link: function (scope, elem, attr, ngModelCtr) {
                    ngModelCtr.$formatters.push(function (viewValue) {
                        if (typeof viewValue == "undefined") {
                            return '';
                        } else {
                            return viewValue.toString()
                        }
                    })
                }
            }
        });

3)多参数

<html ng-app="my_app">
	<head>
		<meta name="viewport" content="width=device-width" />
		<script type="text/javascript" src="js/angular.min.js"></script>
		<script type="text/javascript">
			var app = angular.module("my_app", []);
			app.controller('my_controller', function($scope) {
				$scope.nums = [{
					id: 1,
					num: 50,
					max: 100
				}, {
					id: 1,
					num: 100,
					max: 100
				}, {
					id: 1,
					num: 200,
					max: 100
				}];
			});

			app.directive("limitNum", function() {
				return {
					restrict: "A",
					require: "ngModel",
					scope: {
						max: '='
					},
					link: function(scope, elem, attr, ngModelCtr) {
						ngModelCtr.$formatters.push(function(input) {
							if(input > scope.max) {
								return scope.max;
							} else {
								return input;
							}
						})
					}
				}
			});
		</script>
	</head>

	<body ng-controller="my_controller">
		<div>
			<ul>
				<li ng-repeat="item in nums">
					<input type="number" ng-model="item.num" limit-num max="item.max" />
				</li>
			</ul>
		</div>
	</body>

</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值