использование replace для удаления части URL - PullRequest
0 голосов
/ 12 июля 2020

моя проблема: мне нужно удалить часть каталога, чтобы иметь возможность использовать его в качестве URL-адреса в l oop setup.

php файл

header('Content-type: application/json');

echo json_encode(array(
    "name" => "website",
    "type" => "folder",
    "path" => $dir,
    "items" => $response
));

i есть два пути к функциям, которые являются usr / www/account/website/folder1/img.png пути с функцией замены должны быть /folder1/img.png я получаю ошибку как undefined, когда она находится в For l oop, но отлично работает без l oop, что я делаю не так?

if(scannedFiles.length) {

                scannedFiles.forEach(function(f) {
                    var paths = f.path.replace('usr/www/account/website', '');

                    var file = $('<li class="files"><a href="'+ f.paths +'" title="'+ f.paths +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');
                    file.appendTo(fileList);
                });

            }

Ответы [ 3 ]

0 голосов
/ 12 июля 2020
var file = $('<li class="files"><a href="'+ f.paths +'" title="'+ f.paths +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');

В вашем коде f.paths равно undefined, вам нужно либо использовать paths, который является заменой f.path, либо использовать f.path, который является исходным путем к файлу.

0 голосов
/ 12 июля 2020

«f» в приведенном ниже коде относится к каждому элементу в scannedFile, и когда вы пытаетесь получить доступ, f.paths даст значение, если paths является свойством этого объекта. Если path не является свойством, он дает значение undefined.

Вы можете изменить свой код, как показано ниже

    if(scannedFiles.length) {    
                scannedFiles.forEach(function(f) {    
                    let replacedPath = f.path.replace('usr/www/account/website', '');

                    let file = $('<li class="files"><a href="'+ replacedPath +'" title="'+ replacedPath  +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');
                    file.appendTo(fileList);
                });

            }
0 голосов
/ 12 июля 2020

"f.paths" не требуется, так как это локальная переменная и не извлекается из массива, поэтому, изменив ее на "paths", она работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...