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学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
jquery中的on方法使用介绍
Dec 29 Javascript
浅析javascript操作 cookie对象
Dec 26 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
10行代码实现微信小程序滑动tab切换
Dec 28 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 Javascript
全网小程序接口请求封装实例代码
Nov 06 Javascript
JS实现简易日历效果
Jan 25 Javascript
一文搞懂redux在react中的初步用法
Jun 09 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
使用Apache的rewrite技术
2006/06/22 PHP
php实现encode64编码类实例
2015/03/24 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
基于numpy中数组元素的切片复制方法
2018/11/15 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python遍历路径破解表单的示例
2020/11/21 Python
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
两只小狮子教学反思
2014/02/05 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
法制宣传标语集锦
2014/06/25 职场文书
购房委托书范本
2014/09/18 职场文书
六一儿童节开幕词
2015/01/29 职场文书
房屋所有权证明
2015/06/19 职场文书
计算机实训心得体会
2016/01/14 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android