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学习基础知识小结
Nov 25 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
js 单击式的下拉菜单效果实例
Aug 13 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
Oct 24 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
第六篇Bootstrap表格样式介绍
Jun 21 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
Angular7.2.7路由使用初体验
Mar 01 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 Javascript
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
Vue父子组件传值的一些坑
Sep 16 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入门小知识
2008/03/24 PHP
php常用的工具开发整理
2019/09/26 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
JS如何生成动态列表
2020/09/22 Javascript
Python探索之自定义实现线程池
2017/10/27 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python中turtle库的使用实例
2019/09/09 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
柏林通行证:Berlin Pass
2018/04/11 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS