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 利用Cookie记录用户登录信息
Dec 08 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
Javascript仿PHP $_GET获取URL中的参数
May 12 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 Javascript
jquery实现简单拖拽效果
Jul 20 jQuery
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简单操作mysql数据库的类
2015/04/16 PHP
js 深拷贝函数
2008/12/04 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
作风建设剖析材料
2014/10/06 职场文书
典型事迹材料范文
2014/12/29 职场文书
关于颐和园的导游词
2015/01/30 职场文书
教师个人培训总结
2015/02/11 职场文书
公司奖励通知
2015/04/21 职场文书
python 中的jieba分词库
2021/11/23 Python
SQL Server使用导出向导功能
2022/04/08 SQL Server