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中暂停功能的实现代码
Mar 04 Javascript
javascript Array.remove() 数组删除
Aug 06 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
jQuery统计上传文件大小的方法
Jan 24 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
修改js confirm alert 提示框文字的简单实例
Jun 10 Javascript
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
node上的redis调用优化示例详解
Oct 30 Javascript
Vue.Draggable拖拽功能的配置使用方法
Jul 29 Javascript
微信小程序中如何使用flyio封装网络请求
Jul 03 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
jQuery 使用手册(二)
2009/09/23 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python发布模块的步骤分享
2014/02/21 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
python类装饰器用法实例
2015/06/04 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python感知机实现代码
2019/01/18 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
美术教学感言
2014/02/22 职场文书
2014年采购工作总结
2014/11/20 职场文书
2014年信用社工作总结
2014/11/25 职场文书
安全检查汇报材料
2014/12/26 职场文书
php 原生分页
2021/04/01 PHP
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python