2015-10-01 29 views
1

我正在爲自己的教育選擇Angular。我一直在關注CodeAcademy和PluralSight的教程(即AngularJS:入門流)。從開放天氣地圖中獲取JSON

我很抱歉在這裏很尷尬,但我對兩個不同的項目有兩個錯誤。我不想做兩個新的話題,因爲他們很小,但我無法理解它。

未知錯誤 我知道這個問題,但我不知道爲什麼它的發生。我在這裏和網上搜索了網站,並嘗試了建議的修復程序,但它對我沒有任何幫助,所以我恢復了原來的狀態。我目前正在學習定製服務,並嘗試爲github查看器添加一個。

我得到的錯誤是:TypeError: github.getUser is not a function at Scope.$scope.search (script.js:39)。我檢查了腳本中的行,我看不到有什麼不對(我直接從教程跟着它,沒有在線修補程序爲我工作。下面是代碼: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釋放出)http://plnkr.co/edit/RaMkbx1zqwlJsbZrwueQ?p=info

這是當我嘗試訪問更深的數組(列表),它無法識別任何東西。上排(城市)卻沒有打擾!

結論 我想學習Angular,所以沒有時間限制或任何東西。即使你能幫我明白我爲什麼錯了,我會很感激!

謝謝。

回答

1

在我看來,最好是創建兩個單獨的問題,因爲問題發生在兩個單獨的項目中。

它看起來像第一個問題是因爲錯誤地annotatingMainController的依賴關係 - 你獲得$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) { 
    // .... 
}; 

這裏是一個工作plunker - http://plnkr.co/edit/vX0AGv?p=preview

如果我能弄清楚你的第二個問題,我會將解決方案添加到此答案中。

編輯:對於第二個問題,它看起來像你沒有更新的script.jsstyle.cssindex.html當你移植你的工作代碼爲Plunker

這些行似乎工作(updated plunker

路徑
<link rel="stylesheet" href="style.css" /> 
<script src="script.js"></script> 

EDIT(5-OCT-2015):正如在下面的評論提到的,是又一個問題是防止溶液與第一問題不加載所述另一錯字來自GitHub的存儲庫。這裏是錯字的修正普拉克:http://plnkr.co/edit/1rxqQ3?p=preview

+0

感謝您的評論!我已經嘗試了代碼,唯一的問題是它現在不返回項目信息。根據控制檯發出的是'return response.data'我有github.js的第15行。 其他方法可以正常工作(因爲用戶名和個人資料圖片發生變化),但不會加載存儲庫。你知道這是爲什麼嗎? :) 我能看到的是'響應'不被識別,但我不明白這是怎麼回事。 – Bosca

+0

名爲'response'的變量中存在拼寫錯誤(錯誤地輸入爲'reponse')。這裏是它加載存儲庫的URL:http://plnkr.co/edit/1rxqQ3?p=preview –

+0

@Bosca - 更新的答案是否有幫助?請接受詳細的[這裏](http://stackoverflow.com/help/someone-answers)的答案,如果有的話。 –

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]; 
    }; 
}); 

DEMO on JSFiddle