行如风 Angular 初识5

今天说一下关于AngularJs的闪屏问题和使用对象扩充和数据遍历,直接上代码:

(一)、闪屏问题

首先要知道是什么原因会造成闪屏问题,大家都知道数据绑定会有2种写法(此处的2种不包括表单的数据绑定),即ng-bind和{{xxx}}的写法,

比如以下代码

<div>{{name}}</div>和<div   ng-bind=”name”></div>

这两种都可以绑定数据,但是{{name}}在页面刷新时Web渲染的时候还会显示{{name}},然后当Angularjs的内容被读完之后,Angular才会处理{{name}}的内容,比如$scope.name=”你好”;当Angular被加载之后{{name}}才会变为”你好”,所以会有闪屏的现象。但是用指令ng-bind=”name”不会出现闪屏,因为指令实在标签属性里不会显示在页面当中,虽然这两者都是在Angular加载完成之后才会再渲染相应的内容,效果却不一样。

那这样大家可能回想,那以后大家都用指令来绑定不就行了吗?但是指令是写在标签的属性里,如果要绑定的名称很长{{zxcvbmdashkeqw}}或者还要在指令里面做运算+-*/..等等,这会导致标签的属性过于冗余,不是理想的解决方法,所以大家可以这样写

<style>
    .ng-cloak{display:none;}
</style>
<div ng-app="hd" ng-cloak ng-controller="ctrl" class="ng-cloak">          {{name}}
</div>

class="ng-cloak"就是解决闪屏问题的关键指令,要保证style里面有对应的样式,还要保证在对应模块的标签里要有class="ng-cloak",这样就完美解决了,原理是这个模块会在Angular将这个模块渲染完之后再显示模块内的数据。J

(二)、对象扩充和数据遍历

直接撸代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" >
		<title></title>
		<style>
			.ng-cloak{display: none;}
		</style>
	</head>
	<body>
		<div ng-app="hd" ng-cloak ng-controller="ctrl" class="ng-cloak"><!--要想效果一样必须class名称是ng-cloak-->
			<div ng-repeat="(key, value) in data">
				{{key}} -- {{value}}
			</div>

		</div>

	</body>
</html>
<script type="text/javascript" src="js/angular.js" ></script>
		<script>
			var m=angular.module(‘hd‘,[]);
			m.controller(‘ctrl‘,[‘$scope‘,function($scope){//[]里的$scope为依赖注入
			//	函数使用对象扩充
//			var obj={‘name‘:‘后盾网‘};
//			angular.extend(obj,{url:‘houdunwang.com‘,web:‘后盾人‘})
//			console.log(obj);
			//	数据遍历数组
//			$scope.data=[{name:‘后盾网‘,url:‘houdunwang.com‘},{name:‘后盾人‘,url:‘houdunren.com‘}]
//			angular.forEach($scope.data,function(v,k){
//				console.log(v,k);
//				v.url=‘www.‘+v.url;
//			});
			//	数据遍历对象
			$scope.data={name:‘后盾网‘,url:‘houdunwang.com‘};
			angular.forEach($scope.data,function(v,k){
				console.log(v,k);
			})

			}]);
		</script>
时间: 2024-12-17 05:22:17

行如风 Angular 初识5的相关文章

行如风 Angular 初识

上一篇主要说了一些关于Jquery的一些局限以及Angular的一些优点,当然这两者各有各的长处而且可以同时使用各取所长(当然这都是对那些老鸟来说的),这两天听了几节网易云课堂向军老师讲的关于Angular的一些入门课程,感觉受益匪浅,想要学习Angular的小伙伴可以去试试噢.我摘除其中我认为比较重要的几点与大家分享一下: 1.jQuery主要是处理效果的,在处理样式及动画上很显著.(并不代表它不能处理数据,只是各有所长而已) jQuery可以通过id.class.以及一些特有的属性来获取DO

行如风 Angular 初识2

上一篇主要说了一些关于Jquery的一些局限以及Angular的一些优点,当然这两者各有各的长处而且可以同时使用各取所长(当然这都是对那些老鸟来说的),这两天听了几节网易云课堂向军老师讲的关于Angular的一些入门课程,感觉受益匪浅,想要学习Angular的小伙伴可以去试试噢.我摘除其中我认为比较重要的几点与大家分享一下: 1.jQuery主要是处理效果的,在处理样式及动画上很显著.(并不代表它不能处理数据,只是各有所长而已) jQuery可以通过id.class.以及一些特有的属性来获取DO

行如风 Angular 初识4

学习Angular已经有一段时间了,可以说收获越来越多,上一篇主要说了一下关于数据双向绑定MVVM的问题,今天来说一下Angular的用到的一些关键指令以及它的用法~~ 1.首先,先说一下ng-app,ng-controller和ng-init: ng-app是Angular模块初始化的指令,Angular的指令如果要起作用,必须放在对应的ng-app模块内部. ng-controller是Angular的控制器,通常情况下会和ng-app一起放一个HTML标签里,其他指令也必须放到它的内部.

行如风 Angular 初识3

最近一直在学习AngularJs的内容,受益颇多,今天就继续为大家分享我的学习成果,上一篇博文主要说了一下关于MVC的事情,这个是学习Angular的基础,所以我觉得如果是小白的话非常有必要搞清楚三者之间的关系,废话不多说. Angualar的主要特征呢,前面说过是双向数据绑定,那么是怎么来实现的呢? 先来说一下MVVM,MVVM就是module-view-view-module(模型---视图---视图---模型),与之前的MVC不同的是MVVM是双向的,即模型改变视图会自动跟着变,视图改变模

行如风 Angular初识

本人接触前端代码时间并不长,其中css .html.js以及jquery库是前端知识的基础,其他一些人可能还接触过php,java等后台的代码,这里就不多废话进入正题:) 大家可能刚开始接触前端知识的时候尤其对jquery库有了先入为主的概念(特别是刚开始就学习的jquery而不是angular.vue等其他前端框架的童鞋),这样的话可能会导致大家在学习Angular框架的时候,思维模式难以转变: Jquery主要是获取DOM节点(是非模块化的),然后对节点进行操作,如下: 修改一个类名为abc

angular初识

angular 是一种大型的框架,相比较vue而言是比较笨重的,但它的核心思想是双向数据绑定 一,首先说说如何从一步实现. 引包:首先引入angular.js包 接口:在需要操作页面的空间中定义接口,ng-app.个人感觉是开辟了一个angular对象的空间.好.这步做完了就代表空间由angular做. 模板:input里面的数据操作是ng-model="val",这个val就是用来操作的数据值. 创建模板:我感觉是模板进行实例化.因为现在有一个ng-app='myapp'的作用域但是

CentOS教程(六)-初识命令行

之前的文章中,我们学习了如何安装CentOS.如何配置网络.如何使用SSH工具连接CentOS,初步接触了开关机的命令.这一章节中,我们将正式进入命令行的世界. 初识终端界面 在使用SecureCRT连接上CentOS后,我们就进入了CentOS的终端界面,终端界面就是CentOS的命令行界面. 和Windows不同,在生产环境中,CentOS一般是没有图形界面的.所有的操作均基于命令行. 在SecureCRT中,我们看到以下的命令行. Last login: Thu Sep 5 06:04:4

Angular系列----AngularJS入门教程00:引导程序(转载)

我们现在开始准备编写AngularJS应用——phonecat.这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用. 进入angular-phonecat目录,运行如下命令: git checkout -f step-0 该命令将重置phonecat项目的工作目录,建议您在每一学习步骤运行此命令,将命令中的数字改成您学习步骤对应的数字,该命令将清除您在工作目录内做的任何更改. 运行以下命令: node scripts/web-s

关于react和Angular的思考

最近react在github上大有赶超 angular的趋势,不得不说前端技术真是日新月异,比起 java c# php等老牌后端语言来说,javascript库的生命周期正在不断的被缩短和别挑战,距离angular发布至今也不过几年的时间,着实让人感叹. 网上一直有人试图拿react与angular作比较,就好比拿facebook和google作比较,两者虽然同样知名,不过显然不是一回事. 就我个人的感触而言,react无疑是一种ui组件化的解决方案,从设计思路上react和目前还是草案的we