得到了这个json文件:
[
{
"name": "paprika",
"imgSrc": "img/paprika.jpg"
},
{
"name": "kurkku",
"imgSrc": "img/kurkku.jpg"
},
{
"name": "porkkana",
"imgSrc": "img/porkkana.jpg"
},
{
"name": "lehtisalaatti",
"imgSrc": "img/lehtisalaatti.jpg"
},
{
"name": "parsakaali",
"imgSrc": "img/parsakaali.jpg"
},
{
"name": "sipula",
"imgSrc": "img/sipuli.jpg"
},
{
"name": "peruna",
"imgSrc": "img/peruna.jpg"
},
{
"name": "soijapapu",
"imgSrc": "img/soijapapu.jpg"
},
{
"name": "pinaatti",
"imgSrc": "img/pinaatti.jpg"
}
]
我在工厂成功获取的内容:
factory('getJson', ['$resource', function($resource) {
return $resource('json/vegs.json', {}, {
query: {method:'GET', isArray:true}
});
}]);
在我的控制器中,我可以获得json的文件内容:
var vegs = getJson.query();
$scope.vegs = vegs;
console.log(vegs)
console.log(typeof vegs)
奇怪的部分是第一个console.log按预期生成一个对象数组。 第二个控制台说它是"对象",而不是数组。
我可以使用{{vegs}}将.json内容添加到我的视图中,我也可以使用ng-repeat,在控制器中我不能使用vegs [0]或vegs.length。它出来了。
我现在已经超过3个小时了解这个问题:)
答案 0 :(得分:1)
这不是一个“答案”。只是对您问题的一部分进行观察。 (对不起,还不能发表评论......对stackoverflow来说是新手)。
请注意您的评论"第二个控制台说它是"对象",而不是数组。"在数组上使用typeof
将始终返回"object"
。
有各种各样的(并且似乎有争议的)方法来测试它是否是一个数组 - 例如Array.isArray(obj)
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray