[英]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.