2017-04-05 106 views
0

我剛在一個角函數裏面使用了一個jquery,並試圖通過ng-click來調用。它可以正常工作,但我總是需要按鈕第二次點擊調用該函數jquery裏面的角函數需要雙擊才能調用

這是我的函數調用語句

<button type="button" class="btn btn-primary showRest" id="btnShow" ng-click="loadHotels()">Show Restaurants</button> 

這是我的角度函數調用一個服務,如果成功,它滾動到一個div

$scope.loadHotels = function() { 
    $scope.setPlace(); 
    if (p != null) { 
    $http({ 
     method: 'POST', 
     url: 'http://localhost/fudline/access/hotels/loadhotelsfromplace', 
     data: $httpParamSerializerJQLike({ 
      place: p 
     }), 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
     } 
     }) 
     .success(function(data, status, headers, config) { 
     $scope.hotels = data; 
     $(".showRest").click(function() { 
      $('html,body').animate({ 
       scrollTop: $(".hotels").offset().top 
      }, 
      'slow'); 
     }); 
     }).error(function(data, status, headers, config) { 
     // 
     }); 
    } 


} 
<button type="button" class="btn btn-primary showRest" id="btnShow" ng-click="loadHotels()">Show Restaurants</button> 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 

它是去...

<div class="container text-center hotels">  
    <h3>Trending Restaurants</h3> 
</div> 
+0

爲什麼你需要再次點擊相同元素的成功? – sTx

+0

您不需要事件處理程序在成功回調時調用方法。只要刪除事件處理程序 – CrazyMac

回答

1

您正在綁定success回調中的單擊事件處理程序,因此它在第一次單擊時不起作用。

你不需要事件處理程序,擺脫它。

.success(function (data, status, headers, config) { 
    $scope.hotels = data; 
    $('html,body').animate({ 
     scrollTop: $(".hotels").offset().top 
    }, 'slow'); 
}) 
+0

謝謝...這是由於jquery中少kntwledge ..! –

相關問題