javascript - Angular JS,如何将URL参数传递给angularJS中的$resource?

标签 javascript angularjs

您好,我有一个简单的 Controller ,它将唯一的整数传递到我的 url,但我遇到了很多问题。我需要从我的 Controller 动态更改此“4401”。

我试图到达的网址: https://itunes.apple.com/us/rss/topmovies/limit=50/genre=4401/json

app.factory('classic',function ($resource) {

    return $resource('https://itunes.apple.com/us/rss/topmovies/limit=50/genre=:id/json', {
        get: {
            method: 'JSONP',
            id: '@id'
        }
    });

});

这是我的 Controller

app.controller('TestCrtl', function ($scope, classic) {
    init();
    function init(id) {
        $scope.movies = classic.get(id);
    }
    $scope.classicMovies = function(){
        var id = "4403";
        init(id);
    }


    $scope.anctionMovies = function(){
        var id = "4404";
        init(id);
    }
});

我得到的错误 未捕获的语法错误:意外的 token :

如有任何帮助,我们将不胜感激。

 <div class="col-sm-4">
            <button type="button" data-ng-click="actionMovies()" class="btn btn-default">Action</button>
        </div>
        <div class="col-sm-4">
            <button type="button" class="btn btn-default">Scary</button>
        </div>

最佳答案

我相信这是使用资源工厂时实现参数的正确方法:

app.factory('movieService',function ($resource) {
    return $resource('https://itunes.apple.com/us/rss/topmovies/limit=50/genre=:id/json', {id: '@id'}, {
        query: { method: 'GET', isArray:true, params: {id: '@id'} }
    });
});

这可以简化为:

app.factory('movieService',function ($resource) {
    return $resource('https://itunes.apple.com/us/rss/topmovies/limit=50/genre=:id/json', {id: '@id'});
});

要调用此 get 方法,您需要执行以下操作。请注意 get 方法中使用的参数。

app.controller('TestCrtl', function ($scope, movieService) {

    $scope.classicMovies = function(){
        movieService.query({id: 4403}, function(result){
            $scope.movies = result;
        });
    }
    $scope.anctionMovies = function(){
        movieService.query({id: 4404}, function(result){
            $scope.movies = result;
        });
    }
});

此外,应该注意资源方法调用将返回一个 promise 。您可以像上面那样从 get 方法的返回值中设置它(不保证 promise 的状态),或者您可以在回调中设置它,以保证 promise 已解决。

关于javascript - Angular JS,如何将URL参数传递给angularJS中的$resource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712971/

相关文章:

javascript - 将图标添加到谷歌地图

angularjs - Bootstrap-突出显示 Active 和 Angular 指令

javascript - 使用一个 jquery 函数设置多表单选择下拉列表的样式

javascript - 如何将一个div的文本动画化?

javascript - 加载页面内容的事件(Ionic 2)?

javascript - 使用 Node.js,在 XMLHttpRequest 期间或之后创建一个新的 XMLHttpRequest

javascript - 如何用html2canvas抓取div?

java - spring boot无法解析html View

javascript - 在 angularjs 资源中使参数可选

javascript - 如何在AngularJS中获取按钮标签?