簡體   English   中英

如何在angular.js中將范圍添加到http控制器?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM