angularjs обвързването на данни с кеш фабрика не работи

погледнете тази дрънкане. (свързването на данни се извършва в списъка с имена, но не и в списъка с филми)

щракнете върху име в списъка с имената: подробностите са показани по-долу. Ако редактирате данните в детайлите, списъкът се актуализира с обвързване на данни (както се очаква).

направете същото със списъка с филми, щракнете върху филм и редактирайте данните в подробностите по-долу. списъкът не се обновява.

единствената разлика в двете фабрики е, че "Имената" са от статичен json файл, а "филмите" от API за филми.

това е моята фабрика за филми:

app.factory('moviesFactory', function($http) {
var cachedData;

 function getData(callback) {
if (cachedData) {
  callback(cachedData);
} else {
  $http.get('https://yts.re/api/list', {
    params: {
      quality: "3D",
      limit: 3
    }
  }).success(function(data) {
    cachedData = data.MovieList;
    callback(data.MovieList);
  });
}
  }
  return {
getAll: getData,
getOne: function(itemId, callback) {
  getData(function(data) {
    var movie = data.filter(function(entry) {
      return entry.MovieID === itemId;
    })[0];
    callback(movie);
  });
}
  };
});

единствената разлика във фабриката за имена е този ред:

$http.get('foo.json').success(function(data){...}

Не разбирам защо списъкът с имена работи, а филмите не.

Как мога да направя обвързване на подробните данни за филмите със списъка с филми. някакви идеи?


person user2062455    schedule 28.10.2014    source източник


Отговори (1)


върнете актуализирани данни към уловените данни, след което ще получите актуализирани данни. app.factory('moviesFactory', function($http) { var cachedData;

 function getData(callback) {
if (cachedData) {
  callback(cachedData);
} else {
  $http.get('https://yts.re/api/list', {
    params: {
      quality: "3D",
      limit: 3
    }
  }).success(function(data) {
    cachedData = data.MovieList;
    callback(cachedData);
  });
}
  }
  return {
getAll: getData,
getOne: function(itemId, callback) {
  getData(function(data) {
    var movie = data.filter(function(entry) {
      return entry.MovieID === itemId;
    })[0];
    callback(movie);
  });
}
  };
});
person user3722785    schedule 28.10.2014
comment
благодаря, проработи. знаете ли защо работи с json файла, но не и с api? аз не разбирам - person user2062455; 28.10.2014