我能够从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>
没有反应。
console.log($scope.somevar);
在最后一行上执行更早,所以$scope.somevar
尚未初始化。为什么要尝试转储内容呢? JSON内容最终将在范围内访问。如果您需要对该结果执行某些操作,请在匿名函数中执行此操作。