我只是在一个角度函数中使用了一个jquery并尝试通过ng-click调用。它工作正常,但我总是需要再次点击按钮来调用函数
这是我的函数调用语句
<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 :(得分:1)
您正在success
回调中绑定点击事件处理程序,因此首次点击时无效。
你不需要事件处理程序,摆脱它。
.success(function (data, status, headers, config) {
$scope.hotels = data;
$('html,body').animate({
scrollTop: $(".hotels").offset().top
}, 'slow');
})