• directive指令里的require


    
    

    这是一段判断两次密码输入是否相同的指令,我们知道,require属性是用来设定控制器的

    分别有前缀: ? , ^ , 前缀可以加也可以不加

    比如 require: 'thisDirective',那么require只会在当前指令中查找控制器

    require: "^parentDirective" , 那么就会到上游指令中查找控制器

    require: "?thatDirective"  如果在当前指令没有找到控制器,就将null作为link的第四个参数

    如下段代码

    app.directive('myPwdMatch', [function(){
         return {
             restrict: "A",
             require: 'ngModel',
             link: function(scope,element,attrs,ctrl){
                 tageCtrl.$parsers.push(function(viewValue){
                     ctrl.$setValidity('pwdmatch', viewValue == ctrl.$viewValue);
                     return viewValue;
                 });
                 ctrl.$parsers.push(function(viewValue){
                     if(viewValue == tageCtrl.$viewValue){
                         ctrl.$setValidity('pwdmatch', true);
                         return viewValue;
                     } else{
                         ctrl.$setValidity('pwdmatch', false);
                         return undefined;
                     }
                 });
             }
         };
     }]);

    在此段代码中require:'ngModel' ,  这里控制器是基于上游控制器的当前指令的控制器,上游控制器的内容,此指令控制器中都有但是无法对上游控制器进行影响,

    上下游控制器之间的关系应该是和原型一样的,

    上游的控制器就好像底层的原型,下游的控制器是表层的原型,

    表层的原型能够使用底层原型的内容,同时,表层原型的修改不会影响到底层原型.

    同一级的原型之间又彼此相互独立,虽然都继承自同一个底层控制器.

  • 相关阅读:
    Flex Cairngorm简介
    caringorm3学习
    实现自动间休[原创]
    vs2003/vs2005快捷键使用大全(转帖)
    美国流行口语26句
    日记 [2007年08月29日]
    一个博客的排版问题,郁闷中
    你真的懂我吗?<谈谈接口>
    教你如何辨别手机是行货还是水货
    五十音图速记法
  • 原文地址:https://www.cnblogs.com/bridge7839/p/6394975.html
Copyright © 2020-2023  润新知