详解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 相关文章推荐
简单三步,搞掂内存泄漏
Mar 10 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
详解从react转职到vue开发的项目准备
Jan 14 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 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 购物车的例子
2009/05/04 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
PHP 实现重载
2021/03/09 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
js使用递归解析xml
2014/12/12 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
最基础的Python的socket编程入门教程
2015/04/23 Python
Python制作爬虫采集小说
2015/10/25 Python
Python表示矩阵的方法分析
2017/05/26 Python
python逆序打印各位数字的方法
2018/06/25 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
用Python制作音乐海报
2021/01/26 Python
高中毕业自我鉴定范文
2013/10/02 职场文书
会计找工作求职信范文
2013/12/09 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
高一地理教学反思
2014/01/18 职场文书
万能检讨书2000字
2014/10/17 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript