我撞到了另一面墙!已经好几个小时了。
我有一个从购物车系统的JSON文件中提取的产品列表。
当客户将产品添加到购物车时,我想要刷新JSON Feed,因为我已将此设置为根据客户在购物车中的内容调整库存水平,因此他们无法在商店中添加太多产品没有。
'添加到购物车'运作良好。但我无法弄清楚如何“推送”更新的Feed以更新DOM元素。
这是我到目前为止所做的:
$scope.reloadData = function(detailSection) {
// Find the URL title of the current click product
var prod_detail_url = $scope.products[detailSection].url_title;
var prod_category_id = $scope.products[detailSection].discount_category;
var prod_sku = $scope.products[detailSection].title;
// Set the defaults of the info to load in
var detailurl = '/order/series_detail/' + prod_detail_url + '/' + prod_category_id + '/' + prod_sku;
$scope.productDetail = [];
// Process the details of the product
$scope.reloadedDetails = function (data, status) {
$scope.productDetail = data;
$scope.productDetail.push(data);
$('.detailloader').hide();
}
// Fetch the Details of the product
$scope.reloadDetail = function () {
$('.detailloader').show();
$http.get(detailurl).success($scope.reloadedDetails);
}
// Instantiate the process
$scope.reloadDetail();
};
$ scope.reladedDetail正在开火,我的.detailloader正在显示。据我所见,从检查器中可以看到它的URL。 $ scope.reloadedDetails,但它没有推送新数据并隐藏.detailloader。
我相信'我还需要在提交后再次制作'原始'形式?我还没有适当地调查过这个问题。目前的测试允许我添加一个东西到购物车,但如果我然后添加尝试添加另一个,表单不提交。
对此有何建议?我可以告诉Angular在新数据加载后再次使表单保持原样吗?我不确定我的杆子是否正确。
非常感谢您抽出宝贵时间提供帮助。
答案 0 :(得分:9)
在$scope.$apply()
函数中尝试reloadedDetails
。
您正在传递reloadedDetails
作为成功函数,因此这将在另一个范围内。