Как правильно заново инициализировать представление с $ state.go из другого представления - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь отправить пользователей из одного состояния в другое с помощью этого метода:

$state.go('splash');

Это работает правильно, однако, когда пользователи отправляются на мой splash просмотр, код не перезапускается.

Это HTML-код состояния всплеска:

<ion-view hide-nav-bar="true">
  <ion-content class="splash-screen" scroll="false">
    <div class="loading">
      <i class="fa fa-circle-o-notch fa-spin fa-5x fa-fw"></i>
    </div>
  </ion-content>
</ion-view>

<script id="login.html" type="text/ng-template">
  <ion-modal-view>
    <ion-header-bar class="bar bar-header bar-stable">
      <h1 class="title">Login</h1>
    </ion-header-bar>
    <ion-content>
      <div class="list padding">
        <div class="error" ng-if="errors">
          <p ng-bind-html="error_message"></p>
        </div>
        <label class="item item-input">
          <input ng-model="data.password" type="password" placeholder="Password">
        </label>
        <button class="button button-full button-positive" ng-click="login(data)">Login</button>
      </div>
    </ion-content>
  </ion-modal-view>
</script>

Это контроллер для вида:

angular.module('app.controllers', [])

.controller('SplashCtrl', function($scope, $http, $state, $ionicModal, $ionicLoading, $ionicPlatform, $timeout, $localstorage, appAPI) {

  $scope.data = {};
  $scope.data.password = '';

  $ionicModal.fromTemplateUrl("login.html", {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.modal = modal;
  });

  $scope.openModal = function() {
    $scope.modal.show();
  };

  $scope.login = function(data) {
     alert(data.password);
  };

  $ionicPlatform.ready(function() {

    $scope.openModal();

  });

});

Когда пользователи посещают представление splash в первый раз, модальные нагрузки загружаются, как предполагалось, однако, когда они направляются туда от $state.go - модальные данные не загружаются.

Есть мысли, как заставить это работать правильно?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Я надеюсь, что вы хотите перезагрузить контроллер SplashCtrl, когда пользователь будет перенаправлен в состояние «всплеск».Если это так, попробуйте этот $ state.go ('splash', {}, {reload: true});

0 голосов
/ 16 апреля 2019

Множественные вызовы $ ionicPlatform.ready ()

К сожалению, другие обратные вызовы, переданные функции, игнорируются.(ARGH!) 1

В дополнение к функции обратного вызова в качестве параметра возвращается обещание готовности платформы.

Используйте обещание:

$ionicPlatform.ready().then(function() {

    $scope.openModal();

});
...