AngularJS 1.6: ярлык внутри компонента не обновляется при срабатывании часов - PullRequest
0 голосов
/ 10 мая 2018

В моем компоненте $ watch, который следит за изменениями на заводе.

Эта часть работает, и я вижу, что $ watch замечает и отвечает.

Моя проблемаявляется то, что мне нужно, чтобы шаблон повторно визуализировать с новой меткой.перед тем как перейти к $ watch, я смог использовать $ apply, чтобы подтолкнуть страницу к перезагрузке, но сейчас это не работает.

Я также могу подключить предупреждение и посмотреть, что обновленная информациябезусловно, ударил компонент.

`

mapApp.component("vesselInfo", {
    template : '<div class="vessel-info" >
                  <div ng-bind="viCtrl.title"></div>
                </div>',
     bindings: {   
     },
     controller: VesselInfoController,
     controllerAs: 'viCtrl'
});

function VesselInfoController($scope, $element, $attrs, $http, SelectedVessel) {

    this.title = 'No Vessel Selected';

    // bind the controller property to the service collection
      this.selectedVessel = SelectedVessel.getSelectedVessel();

      // watch the collection for changes
      $scope.$watch(watchSource, function(current, previous){
        this.selectedVessel = current;
        if(current) {
            this.title = 'Name : ' + current.name;
        }
        else {
            this.title = 'No Vessel Selected';
        }           
      });

      function watchSource(){
        return SelectedVessel.getSelectedVessel();
      } 
}

`

1 Ответ

0 голосов
/ 10 мая 2018

Попробуйте с помощью следующего кода

$scope.$watch(watchSource, function(current, previous) {
    // Your watch code here
}, true);

В конце вашего вызова $ watch вы можете передать третий аргумент, который обрабатывает objectEquality (см. Документы здесь ) Если вы передадите здесь true, он будет использовать метод angular.equals, который должен более тщательно проверять вашу коллекцию на наличие различий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...