AngularJS解决ng界面长表达式(ui-set)的方法分析


Posted in Javascript onNovember 07, 2016

本文实例讲述了AngularJS解决ng界面长表达式(ui-set)的方法。分享给大家供大家参考,具体如下:

本文来自网友sun shine的问题,问题如下:

    您好, 我想求教一个问题.
    在$scope中我的对象名字写的特别深, 在 html中我又多次用到了同一个对象, 对不对在 html中让它绑定到一个临时变量呢?
    比如:
    $scope.this.is.a.very.deep.obj = {
    'name': 'xxx',
    'state': 'active'};

    在 模板中,

    {{this.is.a.very.deep.obj.name}}
    {{this.is.a.very.deep.obj.state}}
    类似于这种, 我能否把 this.is.a.very.deep.obj 预先赋给一个临时的变量, 然后在 两个 span中只需 o.name, o.state 就行了呢? 我觉得这样解析起来是不是快一点.

    但是我试了, 并没有成功. 求指点.
    先谢了.

在这里首先需要说明的是ng界面的所有引用都需要在$scope这个viewmodel(ui和view的胶水层),所以如果我们希望能够把表达式变得更可读,更友好,那么我们就必须在$scope上创建这个变量。

再则对于ng其使用使用的一堆的$watch,实现脏检查,如果你理解这些了,那么我们就可以很容易的实现一套如spring的

<c:set var="xxx" expression="xxx" />

的tag.

对于实现这类tag,我们最好的方式则是利用ng的directive来实现,代码如下:

angular.module("greengerong.ui.tag", [])
 .directive("uiSet", [
  function() {
   return {
    restrict: "EA",
    link: function(scope, elm, iAttrs) {
     scope.$watch(iAttrs.expression, function(val) {
      scope[iAttrs.
       var] = val;
      var apply = !scope.$$phase ? scope.$apply : angular.noop;
      apply();
     });
    }
   };
  }
]);

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
javascript 用记忆函数快速计算递归函数
Mar 15 Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 Javascript
JS cookie中文乱码解决方法
Jan 28 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
js实现网页收藏功能
Dec 17 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
Bootstrap table使用方法总结
May 10 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
Jun 23 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
微信小程序获取音频时长与实时获取播放进度问题
Aug 28 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
详解uniapp的全局变量实现方式
Jan 11 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 #Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 #Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 #Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 #Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 #Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 #Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 #Javascript
You might like
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
简单谈谈python中的多进程
2016/11/06 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
大学生开西餐厅创业计划书
2014/02/01 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
单位租房协议书范本
2014/12/04 职场文书
自我评价优缺点范文
2015/03/11 职场文书
python基础详解之if循环语句
2021/04/24 Python
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS