我还希望能够访问此控制器中的$ scope,这样我就可以在我的html中执行ng-click和ng-change等方法。我知道有这个$ http但是我不能对它做一个角度函数,我似乎无法弄清楚如何在这个控制器中使用$ scope。
app.controller('songController', ['$http', function($http) {
$songs = this;
$songs.tracks = [];
$http({
url: "http://api.q-music.be/1.2/tracks/plays?limit=20",
dataType: "jsonp",
jsonp: "callback"
})
.success(function(lastSongsList) {
$songs.tracks = lastSongsList.played_tracks;
console.log($songs.tracks);
});
}]);
我希望能够像这样在这个控制器中执行方法:
$scope.change = function() {
$scope.counter++;
};
答案 0 :(得分:2)
您需要像这样注入范围依赖:
app.controller('songController', ['$http', '$scope', function($http, $scope) {
答案 1 :(得分:1)
将控制器定义更改为:
app.controller('songController', ['$http', '$scope', function($http, $scope) {
与将$ http注入控制器的方式相同,您需要对$ scope执行相同操作以允许控制器使用它。
查找依赖注入,你会发现各种各样的东西。它非常有用,如果你要使用Angular,你会想知道它是如何工作的。
答案 2 :(得分:0)
$songs = this;
$songs.tracks = [];
也应该是
$scope.songs = this;
$scope.songs.tracks = [];
$ http成功处理程序
相同$songs.tracks = lastSongsList.played_tracks;
应该是
$scope.songs.tracks = lastSongsList.played_tracks;
您的更改功能可以保留在控制器中
$scope.change = function() {
$scope.counter++;
};
然后在你的HTML中,例如按钮输入使用ng-click ="更改()"