带有NodeJ的AngularJs无法访问定向链接功能中的AngularJs服务

带有NodeJ的AngularJs无法访问定向链接功能中的AngularJs服务,angularjs,node.js,angularjs-directive,Angularjs,Node.js,Angularjs Directive,我试图创建使用NodeJS编写的Angular.js指令,并希望在指令链接函数中使用外部Angular服务,如$parse,我无法访问未定义的注入服务。请帮我做这件事。这是我的指示: 'use strict'; var ngMatch = function($parse) { return { restrict :'AE', link: link, require: '?ngModel' } }; /** @ngInject */ function link

我试图创建使用NodeJS编写的Angular.js指令,并希望在指令链接函数中使用外部Angular服务,如$parse,我无法访问未定义的注入服务。请帮我做这件事。这是我的指示:

'use strict';

var ngMatch = function($parse) {
  return {
    restrict :'AE',
    link: link,
    require: '?ngModel'

  }
};

/** @ngInject */
function link(scope, elem, attrs, ctrl) {
// if ngModel is not defined, we don't need to do anything
if (!ctrl) return;
if (!attrs['ngMatch']) return;

var firstPassword = $parse(attrs['ngMatch']);

var validator = function (value) {
var temp = firstPassword(scope),
v = value === temp;
ctrl.$setValidity('match', v);
return value;
}

ctrl.$parsers.unshift(validator);
ctrl.$formatters.push(validator);
attrs.$observe('ngMatch', function () {
validator(ctrl.$viewValue);
});

}
ngMatch.$inject =['$parse'];

module.exports = ngMatch; 
  • 最好不要使用ngMatch。如果Angular决定使用内置的ngMatch指令,则会发生名称空间冲突
  • 您刚刚定义了两个对象ngMatch和link。angular不可能知道ngMatch是一个指令
      • 最好不要使用ngMatch。如果Angular决定使用内置的ngMatch指令,则会发生名称空间冲突
      • 您刚刚定义了两个对象ngMatch和link。angular不可能知道ngMatch是一个指令

      感谢您的回答,但angular知道ngMatch是一个指令,否则我不会收到$parse的错误。感谢您的回答,但angular知道ngMatch是一个指令,否则我不会收到$parse的错误。