当滚动位置的值从顶部大于100但我不想工作时,我想更改变量的值,$scope
中的值不会改变。
这是代码:
<div ng-show="title===true">
<p>{{title}}</p>
<p>{{card.nome}}</p>
<p>{{card.prezzo}}€</p>
</div>
<ion-content style="top:0px" delegate-handle="cardScroll" on-scroll="getPositionScroll()">
$scope.title = true;
$scope.getPositionScroll = function () {
console.log("scrollPosition " + JSON.stringify($ionicScrollDelegate.$getByHandle('cardScroll').getScrollPosition().top));
console.log("valore title " + $scope.title);
console.log($ionicScrollDelegate.$getByHandle('cardScroll').getScrollPosition().top >= 100);
$scope.title = $ionicScrollDelegate.$getByHandle('cardScroll').getScrollPosition().top >= 100;
};
有谁知道为什么这不起作用?
答案 0 :(得分:0)
我认为这可能与Angular不跟踪getPositionScroll()
函数所做的更改这一事实有关。许多Angular函数都包含在$scope.$apply()
函数中,该函数通知Angular已经进行的更改。但是我认为用于跟踪滚动的函数没有包含在这个函数中,这意味着你需要自己调用它。
所以在$scope.title
之后添加:
$scope.$apply($scope.title);
关于何时使用$scope.$apply()
,like this one,有很多问题,如果过度使用,可能会严重损害您应用的效果。 Angular documentation中也有相关信息。您还可以在this question中找到关于何时在滚动事件中使用此函数的一些见解。