简体   繁体   中英

jade recursif variable no reset

I have some path:

CCCCC,D D D D,aaaaa,bbbbb,test 2.txt,test1.txt,CCCCC/a,CCCCC/a/test 2.txt,CCCCC/a/test1.txt,D D D D/aaaa.fr,D D D D/test 2.txt,D D D D/test1.txt,D D D D/aaaa.fr/test 2.txt,D D D D/aaaa.fr/test1.txt,aaaaa/test 2.txt,aaaaa/test1.txt,bbbbb/aaaaaaaaaaa.txt,bbbbb/fffffffff,bbbbb/fffffffff/test 2.txt,bbbbb/fffffffff/test1.txt

I create tree ( file.id and file.children ) recursively and I display with JADE...

I try to write correct path but doesn't work.

Jade ( start with empty string for path:

mixin file_list(files, path)
ul
    each file, i in files
        li
            - if(file.children.length > 0){
            span #{file.id}
            - path += file.id + '\\';
            mixin file_list(file.children, path)
            - }else{
            span
                a(href='#{path}#{file.id}') #{file.id}
            - }

display:

<ul>
        <li><span>CCCCC</span>
            <ul>
                <li><span>a</span>
                    <ul>
                        <li><span><a href="CCCCC\a\test 2.txt">test 2.txt</a></span></li>
                        <li><span><a href="CCCCC\a\test1.txt">test1.txt</a></span></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><span>D D D D</span>
            <ul>
                <li><span><a href="CCCCC\D D D D\test 2.txt">test 2.txt</a></span></li>
                <li><span><a href="CCCCC\D D D D\test1.txt">test1.txt</a></span></li>
                <li><span>aaaa.fr</span>
                    <ul>
                        <li><span><a href="CCCCC\D D D D\aaaa.fr\test 2.txt">test 2.txt</a></span></li>
                        <li><span><a href="CCCCC\D D D D\aaaa.fr\test1.txt">test1.txt</a></span></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><span>aaaaa</span>
            <ul>
                <li><span><a href="CCCCC\D D D D\aaaaa\test 2.txt">test 2.txt</a></span></li>
                <li><span><a href="CCCCC\D D D D\aaaaa\test1.txt">test1.txt</a></span></li>
            </ul>
        </li>
        <li><span>bbbbb</span>
            <ul>
                <li><span><a href="CCCCC\D D D D\aaaaa\bbbbb\aaaaaaaaaaa.txt">aaaaaaaaaaa.txt</a></span></li>
                <li><span>fffffffff</span>
                    <ul>
                        <li><span><a href="CCCCC\D D D D\aaaaa\bbbbb\fffffffff\test 2.txt">test 2.txt</a></span>
                        </li>
                        <li><span><a href="CCCCC\D D D D\aaaaa\bbbbb\fffffffff\test1.txt">test1.txt</a></span></li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>

Why the variable path doesn't reset?

Try this instead,

mixin file_list(files, path)
ul
    each file, i in files
        - var filePath = path;
        li
            - if(file.children.length > 0){
            span #{file.id}
            - filePath += file.id + '\\';
            mixin file_list(file.children, filePath)
            - }else{
            span
                a(href='#{filePath}#{file.id}') #{file.id}
            - }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM