Javascript 使用ngChange、Angular后向$resource添加新参数

Javascript 使用ngChange、Angular后向$resource添加新参数,javascript,angularjs,angular-resource,Javascript,Angularjs,Angular Resource,在选择了一种类型以创建对API的请求后,尝试附加一个新的url参数时遇到问题 我的ng更改是genreChange。选择后,在使用提交按钮提交表单之前,应在$scope.moviesurl中自动添加新的url参数,如以下所示 <form ng-submit="submitButton()" name="cForm" class="form-horizontal"> <h2>Discover the gems</h2> &l

在选择了一种类型以创建对API的请求后,尝试附加一个新的url参数时遇到问题

我的
ng更改
genreChange
。选择后,在使用
提交按钮提交表单之前,应在
$scope.movies
url中自动添加新的url参数,如以下所示

<form ng-submit="submitButton()" name="cForm" class="form-horizontal">
    <h2>Discover the gems</h2>       
        <div class="form-group">
            <select class="form-control" ng-model="genreSelect" ng-change="genreChange()">
                <option ng-repeat="genre in genreList.genres" value="{{genre.id}}">{{genre.name}}</option>
             </select>    
        </div>

        <input type="submit" value="hello" />           
</form>
我这样做只是为了防止用户将其留空


谢谢

这就是Resource.bind的作用

var MovieResource = $resource('http://api.themoviedb.org/3/discover/movie:action', {
    api_key: apikey,
    callback: 'JSON_CALLBACK'
}, {
    get: {
        method: 'JSONP'
    }
});

$scope.movies = MovieResource;

$scope.genreChange = function() {
    $scope.genreVar =  $scope.genreSelect;
    $scope.movies = MovieResource.bind({with_genres: $scope.genreVar})
}

$scope.submitButton = function() {
    $scope.films = $scope.movies.get();
}

您是为
put
还是
get
执行此操作。您遇到了什么问题?实际上,
get
,只需要添加新的url参数,就像您为put
$scope.movies.get({with_genres:$scope.genreVar})所做的一样。它不工作了吗?我检查了网络控制台,它工作了,但是submitButton()覆盖了它。这意味着进行了两次调用,应该是一次调用调用
genreChange
方法时不应进行调用。只需将需要传递的参数存储在范围变量中。然后在get方法中传递它。
var MovieResource = $resource('http://api.themoviedb.org/3/discover/movie:action', {
    api_key: apikey,
    callback: 'JSON_CALLBACK'
}, {
    get: {
        method: 'JSONP'
    }
});

$scope.movies = MovieResource;

$scope.genreChange = function() {
    $scope.genreVar =  $scope.genreSelect;
    $scope.movies = MovieResource.bind({with_genres: $scope.genreVar})
}

$scope.submitButton = function() {
    $scope.films = $scope.movies.get();
}