[英]How can i add a scope to a http controller in angular.js?
我还希望在此控制器中具有$ 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++;
};
您需要像这样注入作用域依赖性:
app.controller('songController', ['$http', '$scope', function($http, $scope) {
将您的控制器定义更改为此:
app.controller('songController', ['$http', '$scope', function($http, $scope) {
将$ http注入控制器的方式相同,您需要对$ scope进行相同的操作,以允许控制器使用它。
查找依赖项注入,您会发现各种各样的东西。 它非常有用,如果要使用Angular,您将需要了解它的工作原理。
$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 =“ change()”输入按钮
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.