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中的isXX系列是否继续使用的分析
Apr 16 Javascript
JavaScript面向对象设计二 构造函数模式
Dec 20 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
jQuery设置div一直在页面顶部显示的方法
Oct 24 Javascript
使用JS CSS去除IE链接虚线框的三种方法
Nov 14 Javascript
js选择并转移导航菜单示例代码
Aug 19 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
Windows下Node爬虫神器Puppeteer安装记
Jan 09 Javascript
微信小程序scroll-view的滚动条设置实现
Mar 02 Javascript
JavaScript undefined及null区别实例解析
Jul 21 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
简单易用的计数器(数据库)
2006/10/09 PHP
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php异常处理使用示例
2014/02/25 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php intval函数用法总结
2019/04/14 PHP
js单例模式的两种方案
2013/10/22 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python unittest模块用法实例分析
2018/05/25 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python-接口开发入门解析
2019/08/01 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
如何撰写一封出色的求职信
2014/04/27 职场文书
户籍证明格式
2014/09/15 职场文书
新闻人物通讯稿
2014/10/09 职场文书
幼儿园开学通知
2015/04/24 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
nginx之queue的具体使用
2022/06/28 Servers