Использование угловых путевых точек в контроллере
Я пытаюсь использовать https://github.com/zumba/angular-waypoints в одном из моих ионных проектов.
У меня есть настройки кода, как указано в readme.
Вот фрагмент шаблона
<div zum-waypoint="waypoints"
down="flags.on"
up="flags.off"
ng-show="shown()" style="opacity:{{opacity}}; ... </div>
В документации ничего не говорится о том, как использовать значение waypoints.flag.on в контроллере.
Шаблон выше является частью пользовательской директивы - и в контроллере моей директивы я попытался сделать:
$scope.waypoints = {}
$scope.waypoints.flags = {}
$scope.$watch('waypoints.flags', function() {
console.log("Flag on changed to "+JSON.stringify($scope.waypoints) + " for card = "+$scope.id)
if ($scope.waypoints.flags.on){
alert("Mark notification as Read for "+$scope.id)
console.log("up changed" + $scope.waypoints.flags.on + " for id = "+$scope.id)
}
if ($scope.waypoints.flags.off){
alert("2 Mark notification as Read for "+$scope.id)
console.log("down changed " + $scope.waypoints.flags.off + " for id = "+$scope.id)
}
})
Но это никогда не перезванивается.
Тем не менее, в моем шаблоне, если я использую:
{{waypoints.flags.on}} // {{waypoints.flags.off}}
Они отображаются как true // false, хотя после цикла дайджеста.
Пожалуйста, дайте мне знать, как правильно использовать флаги путевых точек в контроллере.
Спасибо.
1 ответ
Вот что я сделал: пользовательская директива. Это не требует угловых путевых точек zumba, только путевых точек jQuery.
app.directive('waypoint',function(){
return {
link: function(scope, $this, attrs) {
$this.waypoint({
handler: function() {
scope.$parent.last = scope.post.id;
scope.$parent.$apply();
}
})
}
}
});