zoukankan      html  css  js  c++  java
  • angularjs自定义指令Directive

    今天学习angularjs自定义指令Directive。
    Directive是一个非常棒的功能。可以实现我们自义的的功能方法。

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

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



    <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>
    Source Code


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

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


    以上是ASP.NET MVC bundle了。

    定义一个App:

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

     定义一个控制器:


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


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


    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;
                        }
                    }
                };
            });
    Source Code

    演示:

     

  • 相关阅读:
    交易是如何被创建和打包的7
    重回js--js中的块作用域
    重回js--立即执行函数
    解决json跨域
    h5开发安卓ios坑总结
    关于html中对换行的处理
    说说display-inline
    笔记--学习git命令(基本命令版)
    写在最开始
    替换多个文件中的部分内容Demo
  • 原文地址:https://www.cnblogs.com/insus/p/6908815.html
Copyright © 2011-2022 走看看