浅谈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中父子组件间相互传参的方法

浅谈Angular中的component/service

Angular cli是什么以及如何安装

了解一下Angular中的@input()和@output()

详解Angular中jsencrypt插件的使用方法

谈谈Angular模块的使用以及懒加载

详解Angular根模块与特性模块

浅谈Angular中http请求模块的用法

浅谈Angular中组件的生命周期

浅谈Angular模板指令:ng-template和ng-container的用法

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




打赏

取消

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

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

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

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

评论

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