详解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跳转页面方法实现汇总
Feb 11 Javascript
Iframe实现跨浏览器自适应高度解决方法
Sep 02 Javascript
javascript中数组array及string的方法总结
Nov 28 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
jquery文字填写自动高度的实现方法
Nov 07 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
详解nuxt路由鉴权(express模板)
Nov 21 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
JS如何实现动态添加的元素绑定事件
Nov 12 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
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
解读Django框架中的低层次缓存API
2015/07/24 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
keras 读取多标签图像数据方式
2020/06/12 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
初中同学聚会感言
2014/02/11 职场文书
小学生期末评语大全
2014/04/21 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
党员示范岗材料
2014/12/19 职场文书
党建工作汇报材料
2014/12/24 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
深入理解python协程
2021/06/15 Python
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL