首页 > 解决方案 > IF 语句中的返回值

问题描述

我有一个带有这个简单代码的 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 语句返回一个真值,但liElementsandliElementHeight只存在于 if 范围内。如何在范围之外返回该值以便我可以使用它?

标签: javascriptangularjs

解决方案


不要重新声明,你会没事的:

.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);
            });
        }
    };
});

推荐阅读