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 相关文章推荐
显示js对象所有属性和方法的函数
Oct 16 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
JavaScript判断是否为数字的4种方法及效率比较
Apr 01 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 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配置文件php.ini所在路径的二种方法
2014/05/26 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
浅谈flask源码之请求过程
2018/07/26 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
房产销售经理职责
2013/12/20 职场文书
2014年会策划方案
2014/05/11 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
纪录片信仰观后感
2015/06/08 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
会议主持词通用版
2019/04/02 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript