Использование угловых путевых точек в контроллере

Я пытаюсь использовать 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();
        }
      })
    }
  }
});
Другие вопросы по тегам