Ответ 1
Просто определите его вне инъекции:
var name = 'myDirective';
app.directive(name, function() {
return {
link: function(scope, element, attrs) {
console.log(name); // --> myDirective
}
};
});
Я хотел бы использовать имя директивы внутри функции связывания. Как я мог его получить?
app.directive('myDirective', function() {
return {
link: function(scope, element, attrs) {
// How could I get directive name here (i.e. 'myDirective')?
}
};
});
Просто определите его вне инъекции:
var name = 'myDirective';
app.directive(name, function() {
return {
link: function(scope, element, attrs) {
console.log(name); // --> myDirective
}
};
});
Возможно внутри compile
функция директивы .
directives.directive('myNamedDir', ['$compile', function ($compile) {
return {
compile: function(cElem, cAttrs, transclude) {
var name = this.name;
return function linkFunction(){
//use name
}
}
}]);
app.directive('myDirective', function() {
return {
link: function(scope, element, attrs) {
console.log(arguments.callee.directiveName); // --> myDirective
}
};
});
свойство arguments.callee.caller
, устаревшее в JavaScript