看看这个plunk。 (数据绑定发生在名称列表中但不在电影列表中)
单击名称列表中的名称:详细信息如下所示。如果编辑详细信息中的数据,则列表将使用数据绑定进行更新(如预期的那样)。
对带有电影的列表执行相同操作,单击电影,然后在下面的详细信息中编辑数据。列表没有更新。
两家工厂的唯一区别是“名称”来自静态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){...}
我不明白为什么姓名列表有效而电影没有。
如何使电影详细数据与电影列表绑定。 任何想法?
答案 0 :(得分:0)
将更新的数据返回到捕获的数据,然后您将获得更新的数据。 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);
});
}
};
});