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 Jquery 遍历Json的实现代码
Mar 31 Javascript
jQuery下的动画处理总结
Oct 10 Javascript
jquery基础教程之数组使用详解
Mar 10 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
JSONObject使用方法详解
Dec 17 Javascript
使用JS中的exec()方法构造正则表达式验证
Aug 01 Javascript
Angular2内置指令NgFor和NgIf详解
Aug 03 Javascript
jsTree使用记录实例
Dec 01 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
JavaScript 实现 Tab 点击切换实例代码
Mar 25 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
原生JS无缝滑动轮播图
Oct 22 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php使用ereg验证文件上传的方法
2014/12/16 PHP
php实现简单爬虫的开发
2016/03/28 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
3个用于数据科学的顶级Python库
2018/09/29 Python
wxpython绘制圆角窗体
2019/11/18 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python如何定义有可选参数的元类
2020/07/31 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
数字化校园建设方案
2014/05/03 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
护士个人总结范文
2015/02/13 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
功夫熊猫观后感
2015/06/10 职场文书