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 TextArea的选中区域处理
Dec 28 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
完美实现仿QQ空间评论回复特效
May 06 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
JavaScript仿静态分页实现方法
Aug 04 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
Apr 06 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 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
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
js数组去重的方法总结
2019/01/18 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
python音频处理用到的操作的示例代码
2017/10/27 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
市场部专员岗位职责
2013/11/30 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
大客户经理岗位职责
2015/04/09 职场文书
学校体育节班级口号
2015/12/25 职场文书
小学英语听课心得体会
2016/01/14 职场文书
合作意向书范本
2019/04/17 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
python脚本框架webpy模板控制结构
2021/11/20 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis