2017-07-19 63 views
0

在一个角度指令中,您可能需要form^AND ngModel?是否可以在链接功能中访问窗体和控制器?Angular指令 - 要求ngModel AND表单^

angular.module('myApp') 
.directive('passwordValidation', passwordValidation) 
function passwordValidation(){ 
    return { 
    replace: true, 
    require: 'ngModel', // also 'form^' ? 
    scope: { 
     userName: '@' 
    }, 
    link: function(scope, elem, attr, ctrl, form) { 
    ... 

回答

1

是的,它可以通过在require属性中提供一个数组来实现。使用这个,你将在链接函数中提供第四个参数的控制器数组。

angular.module('myApp') 
.directive('passwordValidation', passwordValidation) 
function passwordValidation(){ 
    return { 
    replace: true, 
    require: ['ngModel','^form'], // also 'form^' ? 
    scope: { 
     userName: '@' 
    }, 
    link: function(scope, elem, attr, controllers) { 
     var ngModelCtrl = controllers[0],formCtrl = controllers[1]; 
    } 
    }} 
+0

哈哈,我实际上试过,但是错误地有'形式^'。谢谢! – neridaj