编写强angularJS的应用

什么是强angularJS的应用呢?

我们知道angularJS是描述性的前端框架。也就是说在HTML中我就应该尽量描述清楚最后应该呈现的结果,在js文件尽量少的直接操作DOM元素。

与JQuery不同,在JQuery的应用中,从HTML文件中我们很难了解最终呈现的画面,因为在js文件中有着大量直接针对DOM的操作。


现在我们来试着编写一个强AngularJS的应用。在这个过程中,注意体会 尽量少的直接操作DOM元素 的精神。

应用的最终结果如下:

当我们改变Date Format中的时间显示格式时,Current Time的显示格式就会改变。

首先编写我们的html文件

<!DOCTYPE HTML>
<html ng-app='Clock'>
<head >
	<title>AngularJS NotePad</title>
	<script type="text/javascript" src='./js/angular.min.js'></script>
	<script type="text/javascript" src='./js/clock.js'></script>
</head>
<body>
	<p>AngularJS Clock</p>
	<div ng-controller='ClockController'>
		Date Format: <input ng-model='format'> <br>
		Current Time: <span my-current-time></span>
	</div>
</body>
</html>
然后编写clock.js文件

var app = angular.module('Clock',[]);

app.controller('ClockController',function($scope){
	$scope.format = 'M/d/yy h:mm:ss a';
});

app.directive('myCurrentTime',function($interval,dateFilter){

	function link(scope,element,attrs){

		function updateTime(){
				scope.currentDate = dateFilter(new Date(),scope.format);
			}

		var timeoutID = $interval(function(){
			updateTime();
		},1000);

		element.on('$destroy',function(){
			$interval.cancel(timeoutID);
		});

		
	}
	return {
		link:link,
		template : '<span>{{currentDate}}</span>'
	};
});
我们每秒去运行一次updateTime这个函数。这就是所有的逻辑!我们没有直接操作DOM元素!

作为一个反面试例,请参考这里

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值