簡體   English   中英

在$ http發布請求后,使用AJAX重新加載部分模板

[英]Reload A Partial Template with AJAX After $http Post Request

我對AngularJS還是比較陌生,所以請耐心等待。 我正在嘗試創建一個照片喜歡系統,當用戶單擊“喜歡”按鈕時,它會增加喜歡的次數。 我已經關閉了此功能,但是唯一的是我必須重新加載頁面才能顯示“喜歡”。 這意味着后端上的所有東西都井井有條。 但是,我想避免必須重新加載頁面。

需要注意的一件事是,我有一個部分模板,並且使用ng-click指令單擊按鈕后就會發生HTTP發布請求。

來自部分模板的HTML片段

<a class="like" ng-click="likeIt(//PHPCODEGOESHERE//)">Like</a>

AngularJS

userApp.controller('photoController',['$scope','$location','$window','$log','$route','$routeParams','$location','$http', function($scope,$location,$window,$log,$route,$routeParams,$location,$http){
    $scope.name = 'Photos';
    $scope.likeIt = function(parameters){
        $http.post('centralcommand.php', {id: parameters}).success(function(data,status,headers,config){
            window.location.reload(); // Causes page to reload
               }).error(function(data,status,headers,config){
            alert('failure');
        });
    };

}]);

另請注意,我已嘗試在成功回調中更改innerHTML 這不工作,因為我已經很混合PHP與HTML,我必須同時使用'"在HTML代碼,這樣,當我得到的HTML文本,並用替換它innerHTML它不能正常工作。

我能夠細讀不同的方法后,找到一個答案,它來自在一個單獨的StackOverflow后提供答案。 它與使用$templateCache服務重新加載模板緩存有關:

userApp.controller('photoController',['$scope','$location','$window','$log','$route','$routeParams','$location','$http','$templateCache', function($scope,$location,$window,$log,$route,$routeParams,$location,$http,$templateCache){
    $scope.name = 'Photos';
    var currentPageTemplate = $route.current.templateUrl; // ADDITION # 1
    $scope.routeReloader = function(parameters){
        $http.post('centralcommand.php', {id: parameters}).success(function(data,status,headers,config){
            $templateCache.remove(currentPageTemplate);   // ADDITION # 2
            $route.reload();                              // ADDITION # 3
               }).error(function(data,status,headers,config){
            alert('failure');
        });
    };

}]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM