Модель AngularJS (Angular 1) $ scope не обновляется

Я пытаюсь сделать следующее, запрос к 2 apis.

Первая консультация состоит в том, чтобы собрать данные о местности, указанной в городе, я справляюсь с обещаниями.

Второй запрос: чтобы получить из этих данных еще 7 данных с учетом долготы, широты и даты, я сделал это с помощью IIFE, потому что я пытался сделать это с помощью $ resource, но больше, чем пытался, я не мог решить проблемы с синтаксическим анализом. из JSON.

Вот код, который делает запрос к API для получения данных и обновления прогноза модели, их 2, один для изменения местоположения, а другой для непосредственного вызова функции, которая доставляет данные.

$scope.setLocation = function(loc) {
      $scope.location = loc;
      $scope.getForecastByLocation();

    };

   $scope.getForecastByLocation = function(p) {

      if ($scope.location == '' || $scope.location == undefined) {
        $scope.hasState = 'has-warning';
        $scope.message = 'Please provide a location';

      }

      $scope.hasState = 'has-success';
      console.log("LOCACION==",$scope.location);
      $scope.forecast = openWeatherMap.queryForecastDaily({
        location: $scope.location
      });


      $scope.forecast.$promise.then(function(data){

          for(var i=0;i
        

Listado de ciudades importantes





 {{message}}

без каких-либо проблем, но теперь приходит следующее, у меня также есть боковое меню со списком городов, это, я назначаю событие setLocation (post), аналогичное предыдущему, оно работает нормально, в журналах кажется, что оно делает запрос API, когда я показываю данные, которые получают обещание в коде js, который я положил выше, он показывает мне нормально (img 3), однако $ scope.forecast не обновляется, здесь часть кода, которая находится в img2 и показывает результат консультации API.

    

FORECAST== {{forecast}}

{{forecast.city.name | placeholder:'?'}}, {{forecast.city.country | isoCountry}} Lon: {{forecast.city.coord.lon | number:2}} Lat: {{forecast.city.coord.lat | number:2}} Population: {{forecast.city.population | number:0}}

// Опции бокового меню городов

  

Вот несколько картинок. Первое, что я хочу сделать в боковом меню, это списки городов, которые нужно сделать. щелкните и обновите модель $ scope.forecast в журналах, используя боковое меню или из того же интерфейса, где все города находятся на экране, результат одинаковый, заголовки одинаковые, но При использовании бокового меню обновление модели $ scope.forecast в html не выполняется, даже при печати данных, которые появляются, когда они выполняют запросы, которые существуют.

// При нажатии на боковое меню Не обновляется introducir la descripción de la imagen aquí // При нажатии на index.html # кнопки прогноза Если update introducir la descripción de la imagen aquí ** // Журналы одинаковы для img 1 и img2 ** introducir la descripción de la imagen aquí

Я знаю, что Это что-то простое, однако я какое-то время не обнаружил проблемы, может быть, я что-то забыл Что может происходить?

--- Обновление index.html ---



........
.......

.............

Climas

.................. ..................

--- Обновление 2 ---

console log de $scope.location
Repositorio:https://github.com/kevinlllR/arquisoft

introducir la descripción de la imagen aquí

2
задан 28.08.2019, 23:53
1 ответ

Расследуя в твоем коде я понял, что scope, который у тебя есть в боковом меню различный против остального звука:

Боковое меню имеет id: 3, в то время как в твоем меню, где ты ищешь, и кнопки, которые у тебя есть наверху, имеют id: 4.

Проверяя код, я взял свободу помещения переменной, о которой ты упоминаешь:

Я напечатал forecast, чтобы видеть, что он имел:

    </a>
</li>
<li>
    <a href="#/forecast"><img class="img-responsive" src="img/inicio/clima.png" alt="">
        <b><Ciudades/b>
    </a>
    <ul class="dropbox_citys">
        {{forecast}}
        <li ng-repeat="post in exampleLocations | orderBy:'name':true >
            <a ng-click="setLocation(post)">{{post}}</a>
        </li>
    </ul>
</li>
<li>
    <a href="/app/partials/mapa.html"><img class="img-responsive" src="img/inicio/clima.png"
        <b>Mapa</b>

Действительно да, изменись, когда я даю ему искать в твоем меню, но изменись в том, который стороны меню.

Efectivamente sí, cambia cuando le doy buscar en tu menú]

Тогда я прибыл в заключение, что после того, как имею один ng-view, с приложением снаружи, они ведут себя различным способом $scope.

Решение, которое приходит в голову мне в этих моментах, состоит в том, чтобы ты направил глобальный "forecast", немного как $rootScope.

2
ответ дан 24.11.2019, 12:41
  • 1
    Спасибо за время возьмите, что-то схвати и # 237; pens и # 233; что с ng-view вел себя различно. – Kevin AB 09.11.2016, 20:29

Теги

Похожие вопросы