【发布时间】:2013-05-31 14:17:00
【问题描述】:
我希望仅使用硬编码的 JSON 文件进行本地开发。我的 JSON 文件如下(放入 JSON 验证器时有效):
{
"contentItem": [
{
"contentID" : "1",
"contentVideo" : "file.mov",
"contentThumbnail" : "url.jpg",
"contentRating" : "5",
"contentTitle" : "Guitar Lessons",
"username" : "Username",
"realname" : "Real name",
"contentTags" : [
{ "tag" : "Guitar"},
{ "tag" : "Intermediate"},
{ "tag" : "Chords"}
],
"contentAbout" : "Learn how to play guitar!",
"contentTime" : [
{ "" : "", "" : "", "" : "", "" : ""},
{ "" : "", "" : "", "" : "", "" : ""}
],
"series" :[
{ "seriesVideo" : "file.mov", "seriesThumbnail" : "url.jpg", "seriesTime" : "time", "seriesNumber" : "1", "seriesTitle" : "How to Play Guitar" },
{ "videoFile" : "file.mov", "seriesThumbnail" : "url.jpg", "seriesTime" : "time", "seriesNumber" : "2", "seriesTitle" : "How to Play Guitar" }
]
},{
"contentID" : "2",
"contentVideo" : "file.mov",
"contentThumbnail" : "url.jpg",
"contentRating" : "5",
"contentTitle" : "Guitar Lessons",
"username" : "Username",
"realname" : "Real name",
"contentTags" : [
{ "tag" : "Guitar"},
{ "tag" : "Intermediate"},
{ "tag" : "Chords"}
],
"contentAbout" : "Learn how to play guitar!",
"contentTime" : [
{ "" : "", "" : "", "" : "", "" : ""},
{ "" : "", "" : "", "" : "", "" : ""}
],
"series" :[
{ "seriesVideo" : "file.mov", "seriesThumbnail" : "url.jpg", "seriesTime" : "time", "seriesNumber" : "1", "seriesTitle" : "How to Play Guitar" },
{ "videoFile" : "file.mov", "seriesThumbnail" : "url.jpg", "seriesTime" : "time", "seriesNumber" : "2", "seriesTitle" : "How to Play Guitar" }
]
}
]
}
当 JSON 在工厂内被硬编码时,我的控制器、工厂和 html 都可以正常工作。但是,既然我已经用 $http.get 代码替换了 JSON,它就不起作用了。我已经看到了很多 $http 和 $resource 的不同示例,但不知道该去哪里。我正在寻找最简单的解决方案。我只是想为 ng-repeat 和类似指令提取数据。
工厂:
theApp.factory('mainInfoFactory', function($http) {
var mainInfo = $http.get('content.json').success(function(response) {
return response.data;
});
var factory = {}; // define factory object
factory.getMainInfo = function() { // define method on factory object
return mainInfo; // returning data that was pulled in $http call
};
return factory; // returning factory to make it ready to be pulled by the controller
});
感谢任何和所有帮助。谢谢!
【问题讨论】:
-
不行吗?它有什么作用?它会抛出错误吗? JavaScript 控制台中是否有任何输出?
-
控制台只是说“加载资源失败”,然后有 console.json 文件路径。所以由于某种原因它没有加载它。我的工厂和 JSON 与您在上面看到的完全一样。当我将 JSON 硬编码到工厂中时,它就可以工作了。
-
您使用什么作为后端? NodeJs 还是一个简单的基于 python 的服务器或其他东西?
-
我只是想开发不包括后端(Rails)。所以 JSON 只是一个 .json 文件,上面的数据是硬编码的。大概类似于后端将呈现的内容。
-
您可能不需要响应中的“.data”.. 更改为 --“return response;”,除非您返回的 JSON 捆绑在“data”对象中。
标签: json http angularjs factory