详解Angular的数据显示优化处理


Posted in Javascript onDecember 26, 2016

前面的几篇文章中,我们通过{{}}来渲染数据,今天就来聊聊它。

<div ng-controller="Aaa">
 <div>{{text}}</div>
</div>
<script type="text/javascript">
 alert(123);
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 }]);
</script>

详解Angular的数据显示优化处理

问题显而易见了,当我们没有点击确定的时候,下面的代码是不会执行的,所以也没回一直呈现{{text}}的状态,假设网络的带宽很慢的情况下,js脚本还没有加载进来,页面全是{{}}这样的符号,显然用户体验很显然是不好的。

我们利用ng-bind指令可解决此问题。

<div ng-controller="Aaa">
 <div ng-bind="text"></div>
</div>
<script type="text/javascript">
 alert(123)
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){ 
 $scope.text = 'xiecg';
 }]);
</script>

详解Angular的数据显示优化处理

是不是很棒 ? 问题来了,这里不单单只有一个text数据,有很多个,如何写呢?

<div ng-controller="Aaa">
 <div ng-bind-template="{{text}},{{text}}"></div>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 }]);
</script>

 ng-bind-template="{{text}},{{text}}"  多个表单式

 ng-bind="text"  单个表达式

看了上面的介绍,如果还是觉得在标签上写表达式不舒服可通过ng-cloak来解决。。。

<div ng-controller="Aaa">
 <div ng-cloak>{{text}}</div> ng-cloak在渲染之前是为none的,渲染结束後block
</div>
<script type="text/javascript">
 alert(123);
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 }]);
</script>

 ng-cloak在渲染之前是为none的,渲染结束後block。

还补充一点,在引入angular的时候,header中会嵌入一段css样式。

详解Angular的数据显示优化处理

假设後端返回给我们一段文字,上面包含了{{}}这些符号,可通过ng-non-bindable来屏蔽angular解析。

<div ng-controller="Aaa">
 <div ng-non-bindable>{{text}}</div>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 }]);
</script>

详解Angular的数据显示优化处理

如果是一段html代码,想解析的话就需要引入插件。。。

完整代码:

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>数据显示优化处理</title>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular-sanitize.min.js"></script>
</head>
<body>
<div ng-controller="Aaa">
 <div ng-bind-html="html"></div>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',['ngSanitize']); //引入angular插件,需要在模块依赖插件的模块
 m1.controller('Aaa',['$scope',function($scope){
 $scope.html = '<h1>xiecg</h1>';
 }]);
</script>
</body>
</html>

详解Angular的数据显示优化处理

下面在说说angular中处理样式和属性的操作吧。

 样式:

<div ng-class="{red:true,yellow:true}">{{text}}</div>
 <div ng-controller="Aaa">
 <div ng-style="{{style}}">{{text}}</div>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 //对象类型的数据也可以渲染成内联样式
 $scope.style = {
 color : 'red',
 background : 'blue'
 };
 }]);
</script>

属性:

<div ng-controller="Aaa">
 <a ng-href="{{url}}">baidu</a>
 <a ng-attr-href="{{url}}" ng-attr-title="{{text}}">baidu</a>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
 $scope.text = 'xiecg';
 $scope.url = 'https://www.baidu.com/';
 }]);
</script>

自定义属性可通过ng-attr-**这样的形式书写。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
使用js操作css实现js改变背景图片示例
Mar 10 Javascript
jQuery插件实现大图全屏图片相册
Mar 14 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
微信小程序倒计时功能实现代码
Nov 09 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
JavaScript实现筛选数组
Mar 02 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
Dec 26 #Javascript
手动初始化Angular的模块与控制器
Dec 26 #Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 #Javascript
Angular的事件和表单详解
Dec 26 #Javascript
Angular的MVC和作用域
Dec 26 #Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 #Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
Dec 26 #Javascript
You might like
杏林同学录(八)
2006/10/09 PHP
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python文件的读写和异常代码示例
2017/10/31 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python2包含中文报错的解决方法
2018/07/09 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python requests证书问题解决
2019/09/05 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python中实现栈的三种方法
2020/12/19 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
J2EE系统只能是基于web
2015/09/08 面试题
工厂厂长岗位职责
2013/11/08 职场文书
英文推荐信格式范文
2014/05/09 职场文书
日语系毕业求职信
2014/07/27 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
模范班主任事迹材料
2014/12/17 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers