0
我正在嘗試使用NodeJS和Angular從文件夾讀取文件。我可以迭代文件夾並訪問文件數據,這裏沒有問題。 我的主要問題是我無法將結果(名稱數組)傳遞給$ scope並將其顯示給用戶 - 數組始終爲空。我認爲這與fs異步行爲有關。Angular + NodeJS:使用Promise(fs.fileRead和fs.readdir)從文件夾讀取文件
我做了以下內容:
角服務:
myApp.service('peopleService', ['$q', '$http', function($q, $http) {
var self = this;
this.people = [];
var peopleService = new Promise(function(resolve, reject) {
fs.readdir(folderPath, function(err, files) {
files.forEach(function(file) {
var obj;
fs.readFile(filePath, 'utf8', function (err, data) {
obj = JSON.parse(data);
var person = { name: obj.obituary.name, ... };
self.people.push(person);
});
});
});
resolve(self.people);
}).then(function(people) {
return people;
});
return peopleService;
}]);
角控制器:
myApp.controller('homeController', ['$scope', '$http', 'peopleService', function($scope, $http, peopleService) {
$scope.people = [];
peopleService.then(function(people) {
$scope.people = people;
console.log($scope.people); //empty array (Array[0])
});
}]);
角頁:
<div class="list-group">
<a href="#" class="list-group-item" ng-repeat="person in people">
{{person.name}}
</a>
</div>
我在做什麼錯?
感謝您的幫助@bougarfaoui 。我正在開發一個使用angularjs和electron的桌面應用程序。由於我需要訪問文件系統,我必須在角度內使用節點js。有其他選擇嗎?關於我的問題,您的解決方案解決了我的問題。 – Ricky
@瑞奇哦抱歉,我忘了電子,沒有問題。不要忘記將我的解決方案標記爲正確的答案,thnx :)。 –