我正在尝试使用GitHub Search-API。 当有人点击按钮时我的控制器应该从github调用搜索这里是我的代码
HTML:
<head>
<script src="js/AngularJS/angular.min.js"></script>
<script src="js/Controller/RepoController.js"></script>
</head>
<body ng-controller="RepoController">
<input type="text" ng-model="param" /><button ng-click="search()">suchen</button>
<ul>
<li ng-repeat="repo in repos">
{{repo.name}}
</li>
</ul>
</body>
这是我的控制器:
var App = angular.module('RepoSearch', []);
function RepoController($scope, $http) {
$scope.repos = [];
$scope.search = function() {
$http.get('https://api.github.com/search/repositories?q='+$scope.param).success(function(data) {
$scope.repos = data['items'];
}
}
}
但是我的repos-array仍然是空的
当我用警告交换$http.get
时,它工作正常。
答案 0 :(得分:1)
您忘记在(
之后关闭$scope.repos = data['items'];}
,并定义ng-app
,在这种情况下,<head>
可以<head ng-app="RepoSearch">
:{{1}}
http://docs.angularjs.org/api/ng.directive:ngApp
答案 1 :(得分:1)
原因可能是跨域调用。使用JSONP调用github。
$http.jsonp('https://api.github.com/search/repositories?q='+$scope.param+'&callback=JSON_CALLBACK'+).success(function(data) {
$scope.repos = data['items'];
}
回调方法可能不同,所以看看这些SO帖子
答案 2 :(得分:0)
在HTML中
<head ng-app="RepoSearch">
<script src="js/AngularJS/angular.min.js"></script>
<script src="js/Controller/RepoController.js"></script>
</head>
<body ng-controller="RepoController">
<input type="text" ng-model="param" /><button ng-click="search()">suchen</button>
<ul>
<li ng-repeat="repo in repos">
{{repo.name}}
</li>
</ul>
</body>
控制器中的
var App = angular.module('RepoSearch', []);
//bind controller with your app
App.controller('RepoController',RepoController);
function RepoController($scope, $http) {
$scope.repos = [];
$scope.search = function() {
$http.get('https://api.github.com/search/repositories?q='+$scope.param).success(function(data) {
$scope.repos = data['items'];
}
}
}