我正在为自己的教育接受Angular。我一直在关注CodeAcademy和PluralSight的教程(即 AngularJS:入门流)。
我很抱歉在这里很尴尬,但我对两个不同的项目有两个错误。我不想写两个新主题,因为它们很小但我无法理解它。
未知错误 我知道这个问题,但我不知道为什么它正在发生。我在这里和网上搜索了网站,并尝试了建议的修复,但它没有为我做任何事情,所以我恢复到我拥有它的状态。我目前正在学习自定义服务并试图为github查看器添加一个。
我得到的错误是:.rc
。我检查了脚本中的行,我看不出有什么问题(我直接从教程中看到它,并且没有在线修复工作。我的代码是:http://plnkr.co/edit/IipX8a09PzX4iUZdVutS?p=preview
我认为我的依赖项是错误的,但我不确定原因!
JSON问题 我决定做一个小应用程序从openweathermap网站提取天气数据。 (我在TutorialsPoint上看到了一个不同的天气应用程序并想尝试自己的应用程序。)
可在此处找到JSON文件:http://api.openweathermap.org/data/2.5/forecast?q=Galway,ie&mode=json
我的代码可以在这里找到:http://plnkr.co/edit/RaMkbx1zqwlJsbZrwueQ?p=info
(当我在本地使用http-server托管它时,它工作得很好,所以我不确定为什么plnkr会给出它!)
当我尝试访问更深的数组(列表)时,它无法识别任何内容。上面的阵列(城市)不是很麻烦!
结论 我正在努力学习Angular,所以没有时间约束或任何东西。即使你能帮助我明白为什么我错了,我也会非常感激!
谢谢。
答案 0 :(得分:1)
在我看来,最好创建两个单独的问题,因为问题一共发生在两个单独的项目中。
看起来第一个问题是由于错误annotating MainController
上的依赖关系 - 您将$http
服务作为名为github
的变量。
将MainController
定义中的注释更改为此可解决该问题:
app.controller("MainController", ["$scope", "$http", "$interval", "$log", "$location","$anchorScroll", "github", MainController]);
基本上,命名依赖项(注释)应该与名为MainController
的函数上的参数匹配,这是:
var MainController = function($scope, $http, $interval, $log, $location, $anchorScroll, github) {
// ....
};
这是一个工作的掠夺者 - http://plnkr.co/edit/vX0AGv?p=preview
如果我能够找出你的第二个问题,我会将解决方案添加到这个答案中。
编辑:对于第二个问题,当您移植工作时,您似乎没有更新script.js
中style.css
和index.html
的路径代码进入Plunker
这些行似乎有效(updated plunker)
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
EDIT(2015年10月5日):正如下面的评论所述,还有另一个错字导致第一个问题的解决方案无法从GitHub加载存储库。这是纠正错字的插件:http://plnkr.co/edit/1rxqQ3?p=preview
答案 1 :(得分:1)
从开放天气地图获取JSON数据的示例:
angular.module('myApp').controller('myVm', function($scope, $http) {
var vm = $scope;
vm.lat=37, vm.lon=35;
vm.getWeather = function(lat, lon) {
console.log("getWeather invoked with",lat,lon);
if (vm.data == "pending") return ["pending"];
var url = 'http://api.openweathermap.org/data/2.5/weather'
vm.data = "pending";
var p = $http.jsonp(url, { params : {
lat : lat,
lon : lon,
callback: 'JSON_CALLBACK',
APPID: 'xxxxxxxxxx'
}});
p.then (function (response) {
vm.data = response.data;
}).catch (function (error) {
vm.data = "error "+error.status;
})
return ["GetWeather lat="+lat+" lon="+lon];
};
});