详解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 相关文章推荐
解析使用JS 清空File控件的路径值
Jul 08 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
node.js中的path.dirname方法使用说明
Dec 09 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
JavaScript Base64 作为文件上传的实例代码解析
Feb 14 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
React Native中Mobx的使用方法详解
Dec 04 Javascript
vue实现的树形结构加多选框示例
Feb 02 Javascript
用js实现放大镜效果
Oct 28 Javascript
JS实现页面侧边栏效果探究
Jan 08 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python中adb有什么功能
2020/06/07 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
JSF的标签库有哪些
2012/04/27 面试题
护理自荐信
2013/10/22 职场文书
公司同意接收函
2014/01/13 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Python基础之元组与文件知识总结
2021/05/19 Python
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android