2016-04-24 78 views
4

是否有任何函數使用角度js列出文件夾中的所有文件名稱。由於我有很多如果.js文件包含。 那麼有沒有相同的功能?如何使用角度js從文件夾中列出所有文件名稱

+0

使用Directory.GetFiles(路徑)方法列出所有文件,然後以角度使用ng-repeat並在客戶端上構建URL – urvashi

+2

您無法使用'angularjs'列出目錄。你可以用'nodejs'來做到這一點,然後將結果傳遞給'angularjs'以進一步操作。 – sadrzadehsina

+0

另一種方法是創建一個'.json'文件,其中包含所有'.js'文件名,然後使用jquery'getJSON'方法讀取該json並將它們包含在'angularjs'應用程序中。 – sadrzadehsina

回答

0

謝謝您註釋。 我認爲它更好地使用require.js。

1

如果您處於Web環境中,您的應用程序將客戶端運行到瀏覽器中,那麼您無法直接訪問客戶端或服務器文件系統。

在這種情況下,你需要一個像php,asp.net頁面的描述符來生成一個包含你的文件列表的json文件。

PHP端:

<?php 
$dir = "FOLDER NAME HERE"; 
$return_array = array(); 
if(is_dir($dir)){ 
    if($dh = opendir($dir)){ 
     while(($file = readdir($dh)) != false){ 
      if($file == "." or $file == ".."){ 
      } else { 
       $return_array[] = $file; 
      } 
     } 
    } 
    echo json_encode($return_array); 
} 
?> 

ANGULAR SIDE

$http({ 
    method: 'GET', 
    url: 'YOUR PHP PAGE URL HERE' 
}).then(function successCallback(response) { 

    // RESPONSE CONTAINS YOUR FILE LIST 

    }, function errorCallback(response) { 

    // ERROR CASE 

    }); 
2

我想你可以做的NodeJS此。我的要求是將文件列爲index.html中APP的來源。請看看這是否有幫助。

//// THIS WORKS FOR ME 
///// in app.js or server.js 

var app = express(); 

app.use("/", express.static(__dirname)); 
var fs = require("fs"), 

function getFiles (dir, files_){ 
    files_ = files_ || []; 
    var files = fs.readdirSync(dir); 
    for (var i in files){ 
     var name = dir + '/' + files[i]; 
     if (fs.statSync(name).isDirectory()){ 
      getFiles(name, files_); 
     } else { 
      files_.push(name); 
     } 
    } 
    return files_; 
} 
//// send the files in js folder as variable/array 
ejs = require('ejs'); 

res.render('index', { 
    'something':'something'........... 
    jsfiles: jsfiles, 
}); 

///-------------------------------------------------- 

我做了這樣的事情列出的意見/ index.ejs我的索引文件中的文件---下面的代碼將列出文件index.ejs

<% for(var i=0; i < jsfiles.length; i++) { %> 
    <script src="<%= jsfiles[i] %>"></script> 
<% } %> 
相關問題