[英]angularJS function in controller does not respond
我正在嘗試使用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'];
}
}
}
但是當我用警報替換$http.get
時,我的repos-array仍然是空的,它工作正常。
您忘記了關閉(
在$scope.repos = data['items'];}
,並定義了ng-app
,在這種情況下,它可以位於<head>
: <head ng-app="RepoSearch">
http ://docs.angularjs.org/api/ng.directive:ngApp
原因可能是跨域調用。 使用JSONP調用github。
$http.jsonp('https://api.github.com/search/repositories?q='+$scope.param+'&callback=JSON_CALLBACK'+).success(function(data) {
$scope.repos = data['items'];
}
回調方法可能有所不同,因此請查看這些SO帖子
在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'];
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.