我有一个使用以下简单代码的AngularJS指令:
.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);
});
}
};
});
if语句返回一个真值,但是liElements
和liElementHeight
仅存在于if范围内。如何返回超出范围的值,以便可以使用它?
答案 0 :(得分:2)
请勿重新声明,您会没事的:
.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);
});
}
};
});