功能完成后的空变量

时间:2015-12-03 13:26:12

标签: angularjs

我在此模板中有addMovie个功能,

%ul#showresults
  %li.search_results{"ng-if" => "movie.release_date && movie.poster_path", "ng-repeat" => "movie in movieList | orderBy:'-release_date'"}
    .addmovie{"ng-click" => "addMovie(movie)"}
      %span
        Add Movie

当用户点击.addmovie div时,addMovie(movie)功能会触发,

$scope.wishlistID = [];

$scope.addMovie = function(movie) {
  $scope.wishlistID.push({id: movie.id});
  var movieID = $scope.wishlistID[0].id;
  console.log (movieID)

  movieAdd.add(movieID)
   .then(function(response){
      $scope.movieListID = response;

此函数将已添加的动画记录的ID推送到名为wishlistID的范围中,并将其传递给变量。然后它在add服务中请求一个名为movieAdd的函数,并将movieID变量随之传递,

var service = {};
var baseUrl = 'http://api.themoviedb.org/3/movie/';

function httpPromise (url) {
  var deferred = $q.defer();
  $http({
    method:'JSONP',
    url: url
  })
    .success(function(data){
      deferred.resolve(data);
    })
    .error(function(){
      deferred.reject();
    });
  return deferred.promise;
}

service.add = function(movieID){
  return httpPromise(
    baseUrl + movieID + '?api_key=a8f7039633f2065942cd8a28d7cadad4&query=' + '&append_to_response=releases&callback=JSON_CALLBACK')
}

该服务执行JSONP请求并返回放入movieListID范围的数据。

现在,如果我添加一部电影,它会将该影片的ID存储到变量中,例如140048,但如果我输入新的搜索查询并添加不同的影片,则变量movieID仍然具有140048值,导致应用再次添加相同的电影(即使有新的搜索操作和新电影!)

1 个答案:

答案 0 :(得分:1)

看来你继续抓住wishListID数组的相同索引,这是第一个索引(你添加的第一个电影)。

var movieID = $scope.wishlistID[0].id;

为什么不更新此行以匹配: movieAdd.add(movie.id)

而不是: movieAdd.add(movieID)

编辑:

您是否只是想找到添加电影的关键值?而不是电影ID'对象包含的,通过函数传递的。