Javascript IF语句中的返回值
我有一个带有以下简单代码的AngularJS指令:Javascript IF语句中的返回值,javascript,angularjs,Javascript,Angularjs,我有一个带有以下简单代码的AngularJS指令: .directive('mdToggle', () => { return { link (scope, element) { element.on('click', () => { const liElements = 0; const liElementsHeight = 0; co
.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范围内有效。如何将该值返回到范围之外,以便使用它?不要重新声明,您将可以:
.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);
});
}
};
});
不要重新申报,您将被罚款:
.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);
});
}
};
});
如果
blockliElements=element[0],则从变量声明中删除const
…
并使用let
而不是const
您不应该在if
-范围内重新定义liElements
和liElementsHeight
并用let
或var
将const
从变量声明中移除if
blockliElements=元素[0]…
并使用let
而不是const
您不应该在if
范围内重新定义元素和liElementsHeight
并用let
或var
替换const
。是的,有道理。“让声明”澄清了这一点。是的,有道理。“让声明”将其清除。