5

また壁にぶち当たりました!これを何時間も続けています。

ショッピング カート システム用の JSON ファイルから取り込まれた製品のリストがあります。

顧客がカートに商品を追加したら、JSON フィードを更新して、顧客がカートに入れているものに基づいて在庫レベルを調整し、ショップにない商品を追加しすぎないようにします。持ってる。

「カートに入れる」はうまくいっています。しかし、更新されたフィードを「プッシュ」して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 に指示できますか? ここにスティックの右端があるかどうかわかりません。

お時間を割いていただき、誠にありがとうございました。

4

1 に答える 1

9

$scope.$apply()関数内で試してみてくださいreloadedDetails

as success 関数を渡しているreloadedDetailsため、これは別のスコープになります。

于 2013-11-08T16:15:42.533 に答える