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 相关文章推荐
jQuery ul标签下拉菜单演示代码
Dec 11 Javascript
商城常用滚动的焦点图效果代码简单实用
Mar 28 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
js中的this关键字详解
Sep 25 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
Node.js事件驱动
Jun 18 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
基于vue中解决v-for使用报红并出现警告的问题
Mar 03 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 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中实现记住密码自动登录的代码
2011/03/02 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
jquery中.add()的使用分析
2013/04/26 Javascript
JS delegate与live浅析
2013/12/21 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
详解html-webpack-plugin用法全解
2018/01/22 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
使用Flask集成bootstrap的方法
2018/07/24 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
python中round函数如何使用
2020/06/19 Python
简单的命令查看安装的python版本号
2020/08/28 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
金智子午JAVA面试题
2015/09/04 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
六年级学生期末评语
2014/12/26 职场文书
步步惊心观后感
2015/06/12 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
2016年党员承诺书范文
2016/03/24 职场文书