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 相关文章推荐
php 中序列化和json使用介绍
Jul 08 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
jQuery判断元素是否存在的可靠方法
May 06 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
Nov 17 Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
Aug 21 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
JS实现简单移动端鼠标拖拽
Jul 23 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 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读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python编程之Re模块下的函数介绍
2017/10/28 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python for循环及基础用法详解
2019/11/08 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
董事长助理工作职责
2014/06/08 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
DE1107机评
2022/04/05 无线电
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL