以前的问题对此并不满意。
大多数AngularJS在线示例和教程似乎总是定义了微小的JSON数组 - 内部 - js代码......
所以我会在一个非常基本的样本中减少代码:
(function(){
var app = angular.module('store', [ ]);
app.controller('StoreController', function(){
this.product = products;
});
var products = [
{name: "Linux Mint", origin: "Ireland"},
{name: "Ubuntu", origin: "Isle of Man"},
{name: "OpenSUSE", origin: "Germany"},
{name: "Fedora", origin: "USA"}
];
})();
我需要更改阵列"产品"加载一个json文件 - 在同一个文件夹中;没有外部工具或框架允许,绝对不设置服务器和东西,正如我在之前的一些答案中读到的那样。 也没有更改代码,只有" ="之后的部分,可能使用$ scope和$ http。
你会如何以有效的方式做到这一点?
答案 0 :(得分:0)
试试这个:
(function(){
var app = angular.module('store',[]);
app.controller('StoreController',['$http',function($http){
this.product=$http.get('file.json').success(function(resp){
return resp.data;
});
}]);
})();
答案 1 :(得分:0)
试试这个你只需要在你的目录中设置你的json并将get请求指向它就像任何其他get一样。希望这可以帮助。 *这纯粹是为了模仿请求,尽管其中一些可能与服务器请求的内容完全相同。
function ExampleController(exampleSerivce) {
var vm = this;
exampleSerivce.getPosts().then(function(response) {
vm.posts = response;
});
}
function exampleSerivce() {
var Posts = this,
URLS = {
FETCH: '/posts.json'
},
currentPostName,
allPosts;
Posts.getPosts = function() {
return $http.get(URLS.FETCH).then(function(response) {
return response.data
});
};
}
答案 2 :(得分:0)
您可以使用FileReader
来读取本地JSON
文件。工作插件:http://plnkr.co/edit/LtYOyeyxJncnmBGw5YRp?p=preview
app.controller("MainCtrl", ["$scope", function($scope) {
$scope.jsonString = "";
$scope.readFromFile = function() {
if(FileReader) {
var input = document.getElementById('myFile');
var file = input.files[0];
var fr = new FileReader();
fr.onload = function(e) {
$scope.jsonString = e.target.result;
$scope.$apply();
}
fr.readAsText(file);
} else {
window.alert('FileReader is not found, sorry');
}
}
}]);