Peter Boomsma
Peter Boomsma

Reputation: 9808

Return value in IF statement

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

Answers (1)

Niladri Basu
Niladri Basu

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

Related Questions