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 SetInterval与setTimeout使用方法详解
Nov 15 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
Oct 15 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
一步步教你利用Canvas对图片进行处理
Sep 19 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
Feb 26 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
浅谈JavaScript 代码简洁之道
Jan 09 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
基于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中使用gd库实现远程图片下载实例
2015/05/12 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
js实现日历
2020/11/07 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
Python中bisect的用法
2014/09/23 Python
Django 前后台的数据传递的方法
2017/08/08 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python实现从ftp服务器下载文件
2020/03/03 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
物业客服专员岗位职责
2013/11/30 职场文书
经典洗发水广告词
2014/03/13 职场文书
职务聘任书范文
2014/03/29 职场文书
团日活动总结报告
2014/06/25 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
Redis过期数据是否会被立马删除
2022/07/23 Redis