从AngularJS中的文件中读取JSON

时间:2018-01-04 10:03:48

标签: angularjs json angularjs-scope google-chrome-app

我能够从chrome app中的文件中读取json内容,但我希望在$ scope.somevar中返回json内容。如果我尝试在方法内初始化$ scope.somevar,它就会超出范围。

SearchApp.controller("MyTagsApp", function($scope) {
    var myFile = '';
    chrome.runtime.getPackageDirectoryEntry(function(root) {
            root.getFile("MY_FILE.json", {}, function(fileEntry) {
                fileEntry.file(function(file) {
                    var reader = new FileReader();
                    reader.onloadend = function(e) {

                        myFile = JSON.parse(this.result);
                        $scope.somevar = JSON.parse(this.result);
                        console.log(myFile);
                });
            });
        });
        console.log($scope.somevar); });

最后一行返回 undefined 。作为角度技术的新手,我无法理解问题所在。

我也在尝试在HTML页面上显示内容

<ul ng-repeat="i in somevar | filter: searchKeyword">
    <li>{{i.items.name}}</li>
</ul>

没有回应。

1 个答案:

答案 0 :(得分:0)

console.log($scope.somevar);
最后一行的

先执行,因此$scope.somevar尚未初始化。为什么要尝试转储内容呢? JSON内容最终将在范围内访问。如果您需要对该结果执行某些操作,请在匿名函数中执行此操作。