Атрибут без значения в директиве AngularJS
Я написал директиву с изолировать область.
app.directive('myDirective', function() {
return {
restrict: 'E',
scope {
attr1: '@',
attr2: '@',
noValueAttr: // what to put here?
},
link: function(scope, elem, attrs) {
// how to check here if noValueAttr is present in mark-up?
}
};
});
html может быть
<my-directive attr1='...' attr='...' ... no-value-attr>
или
<my-directive attr1='...' attr='...' >
мне интересно, как использовать (и директива обнаруживает, есть ли она или нет) необязательный атрибут, который не имеет назначенного значения. Спасибо.
2 ответов
просто использовать attrs.hasOwnProperty('noValueAttr')
в функции link, чтобы проверить, присутствует ли атрибут или нет.
Не забывайте, что атрибут в разметке будет no-value-attr
, а не noValueAttr
как вы показали.
link: function(scope, elem, attrs) {
if (attrs.hasOwnProperty('noValueAttr'))
// attribute is present
else
// attribute is not present
}
Я знаю, это старый вопрос, но есть такой способ:
link: function(scope, elem, attrs) {
scope.noValueAttr = scope.$eval(attrs.noValueAttr) || 'default value';
}