Reputation: 9808
I have an AngularJS directive with this simple code:
.directive('mdToggle', () => {
return {
link (scope, element) {
element.on('click', () => {
const liElements = 0;
const liElementsHeight = 0;
console.log(element[0].nextElementSibling !== null);
if (element[0].nextElementSibling !== null) {
const liElements = element[0].nextElementSibling.getElementsByTagName('li').length;
const liElementHeight = element[0].nextElementSibling.getElementsByTagName('li')[0].clientHeight;
}
console.log(liElements * liElementsHeight);
});
}
};
});
The if statement returns a true value but the liElements
and liElementHeight
only live inside the if scope. How do I return that value outside of the scope so I can use it?
Upvotes: 0
Views: 75
Reputation: 10604
Do not re-declare and you will be fine:
.directive('mdToggle', () => {
return {
link (scope, element) {
element.on('click', () => {
let liElements = 0;
let liElementsHeight = 0;
console.log(element[0].nextElementSibling !== null);
if (element[0].nextElementSibling !== null) {
liElements = element[0].nextElementSibling.getElementsByTagName('li').length;
liElementHeight = element[0].nextElementSibling.getElementsByTagName('li')[0].clientHeight;
}
console.log(liElements * liElementsHeight);
});
}
};
});
Upvotes: 2