详解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网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
JS location几个方法小姐
Jul 09 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
移除AngularJS下URL中的#字符的方法
Jun 19 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
Jan 07 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
Vue Element UI自定义描述列表组件
May 18 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
奇怪的PHP引用效率问题分析
2012/03/23 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python计算文本文件行数的方法
2015/07/06 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
高中毕业生个人自我鉴定
2013/11/24 职场文书
善意的谎言事例
2014/02/15 职场文书
林肯就职演讲稿
2014/05/19 职场文书
高中学生自我评价范文
2014/09/23 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python