【发布时间】:2016-10-19 00:28:47
【问题描述】:
在加载我的一个视图时尝试进行 API 调用。
controllers.controller("detailsCtrl", ["$scope", "$routeParams", "$filter", "$http", function($scope, $routeParams, $filter, $http) {
$scope.getCurrent = function(url, id, callBack, apiCall, promise) {
var url = "api.openweathermap.org/data/2.5/weather?id=2172797";
var id = "&appid=d436c04d23a5a44329eb8255190a84be";
var callBack = "&callback=JSON_CALLBACK";
var apiCall = url += id += callBack;
var promise = $http.jsonp(apiCall);
promise.success(function(response) {
$scope.current = response.current;
console.log($scope.current);
});
};
$scope.cityName = $filter("filter")($scope.data.list, {
id: $routeParams.cityId
})[0];
}]);
在 html 中使用 ng-init
<div ng-controller="detailsCtrl" ng-init="getCurrent()">
<h1>{{ cityName.name }}</h1>
<tr>
<td>lat: {{cityName.coord.lat}}, lon: {{cityName.coord.lon}}</td>
<td>{{}}</td>
<td>{{}}</td>
<td>{{}}</td>
<td>{{}}</td>
<td>Clouds: {{cityName.clouds.all}}</td>
<td>{{}}</td>
<td>{{}}</td>
</tr>
</div>
note 在用户导航到详细视图之前,还会在我的主视图中进行另一个 API 调用。当用户切换视图时尝试 ng-click,但它根本没有拨打电话。
【问题讨论】:
-
您是否尝试过在路由上的 resolve 参数处进行调用?
-
检查请求是否触发到正确的 url?
-
在浏览器中测试了url,它可以工作。
-
编辑:那个api支持jsonp吗?
-
可以添加html代码吗?我不明白你到底想做什么?
标签: javascript angularjs