繁体   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