Angularjs自定义指令Directive详解


Posted in Javascript onMay 27, 2017

今天学习angularjs自定义指令Directive。

Directive是一个非常棒的功能。可以实现我们自义的的功能方法。

下面的例子是演示用户在文本框输入的帐号是否为管理员的帐号"Admin"。

在网页上放一个文本框和一个铵钮:

Angularjs自定义指令Directive详解

<form id="form1" name="form1" ng-app="app" ng-controller="ctrl" novalidate>
  <input id="Text1" type="text" ng-model="Account" is-Administrator/>
  <br />
  <input id="ButtonVerify" type="button" value="Verify" ng-click="Verify();" />
 </form>

然后你需要引用angularjs的类库:

@Scripts.Render("~/bundles/angular")

以上是ASP.NET MVC bundle了。

定义一个App:

var app = angular.module('app', []);

定义一个控制器:

Angularjs自定义指令Directive详解

app.controller('ctrl', function ($scope) {
   $scope.Account;
   $scope.Verify = function () {
    if ($scope.form1.$valid) {
     alert('OK.');
    }
    else {
     alert('failure.');
    }
   };
  });

下面是重点代码,自定义指令:

Angularjs自定义指令Directive详解

app.directive("isAdministrator", function ($q, $timeout) {
   var adminAccount = "Admin";
   var CheckIsAdministrator = function (account) {
    return adminAccount == account ? true : false;
   };
   return {
    restrict: "A",
    require: "ngModel",
    link: function (scope, element, attributes, ngModel) {
     ngModel.$asyncValidators.isAdministrator = function (value) {
      var defer = $q.defer();
      $timeout(function () {
       if (CheckIsAdministrator(value)) {
        defer.resolve();
       } else {
        defer.reject();
       }
      }, 700);
      return defer.promise;
     }
    }
   };
  });

演示:

Angularjs自定义指令Directive详解

以上所述是小编给大家介绍的Angularjs自定义指令Directive详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
May 10 Javascript
javascript中数组的冒泡排序使用示例
Dec 18 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
js控制table合并具体实现
Feb 20 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
react-redux中connect()方法详细解析
May 27 #Javascript
react-router实现跳转传值的方法示例
May 27 #Javascript
简单实现JavaScript弹幕效果
Aug 27 #Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 #Javascript
详解webpack打包vue时提取css
May 26 #Javascript
jQuery插件imgAreaSelect基础讲解
May 26 #jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 #jQuery
You might like
PHP分页类集锦
2014/11/18 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
Document 对象的常用方法
2009/07/31 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
Django admin组件的使用
2020/10/24 Python
在职人员函授期间自我评价分享
2013/11/08 职场文书
房地产活动策划方案
2014/05/14 职场文书
卖车协议书范例
2014/09/16 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
签字仪式主持词
2015/07/03 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
用JS实现飞机大战小游戏
2021/06/09 Javascript
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL