详解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 刷新框架页的代码
Apr 13 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
JS中的数组方法笔记整理
Jul 26 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
JAVA中截取字符串substring用法详解
Apr 14 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 Javascript
微信小程序 授权登录详解(附完整源码)
Aug 23 Javascript
微信小程序保存图片到相册权限设置
Apr 09 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 Javascript
Postman无法正常返回结果问题解决
Aug 28 Javascript
angular4实现带搜索的下拉框
Mar 25 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
php的大小写敏感问题整理
2011/12/29 PHP
php生成随机数的三种方法
2014/09/10 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
基于js中的原型(全面讲解)
2017/09/19 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
运动员口号
2014/06/09 职场文书
学校食品安全实施方案
2014/06/14 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
爱的承诺书
2015/01/20 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
趣味运动会简讯
2015/07/20 职场文书
小学生运动会广播
2015/08/19 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python