浅谈angular指令中的4种设计模式


本文摘自PHP中文网,作者青灯夜游,侵删。

本篇文章给大家介绍一下angular指令中的4种设计模式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

【相关推荐:《angular教程》】

指令的功能集非常丰富,不过我们已经发现了指令的帕累托分布:使用angular编写的大量指令只会用到可用性和设计模式中很小的比例,这些指令大概可以分为4类:

  • 只渲染指令――这些指令将渲染作用域中的数据,但不会修改数据。
  • 事件处理封装器――这些指令将封装事件处理程序,从而与数据绑定进行交互,例如ngClick,这些指令不渲染数据。
  • 双向指令――这些指令既渲染数据也修改数据。
  • 集合了以上3种功能的模板指令。

只渲染指令

这些指令遵守一个简单的设计模式:它们将监视变量并更新DOM元素,以反映变量的变化,如ngClass,ngBind。

1

2

3

4

5

6

7

8

angular.module('app', []).

    directive('myBackgroundImage', function () {

        return function (scope, element, attrs) {

            scope.$watch(attrs.myBackgroundImage, function (newVal, oldVal) {

                element.css('background-image', 'url(' + ')');

            });

        }

    });

事件处理封装器

从高级别看,事件处理程序指令可以通过调用$apply函数将DOM事件与数据绑定绑定在一起,如ngClick,下面类似的自定义click。

1

2

3

4

5

6

7

8

9

angular.module('app', []).

directive('myNgClick', function () {

    return function (scope, element, attrs) {

        element.click(function () {

            scope.$eval(attrs.myNgClick);

            scope.$apply();

        });

    }

});

双向指令

该模式同时使用了只渲染指令和事件处理程序模式,用于创建控制变量状态的指令。

阅读剩余部分

相关阅读 >>

Angular和vue.js的区别是什么?Angular和vue.js的深度对比

谈谈ngroute路径出现#!#问题怎么解决?

详解Angular中的组件交互

浅谈Angular中组件样式的工作原理

20个优秀的Angular开源项目,你了解几个呢?

Angular脏值检测与vue数据劫持的区别是什么

浅谈Angular中父子组件间怎么传递数据

浅谈Angular中插槽的用法

深入了解Angular中的component组件

深入了解Angular中的pipe(管道)

更多相关阅读请进入《Angular》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...