2016-05-20 2 views
2

Привет, ребята, я пытаюсь открыть модальный. дело в том, что я привязал свой модальный шаблон с явным образом, теперь я пытаюсь связать другой модальный с $ ionicmodal, но он открывает предыдущий. Может кто-нибудь сказать мне, что это такое, что я делаю неправильноионный модальный открытие предыдущего мода

Сначала модальное быть переплетены в APPCtrl

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

.controller('AppCtrl', function($scope, $ionicModal, $timeout) { 

    // With the new view caching in Ionic, Controllers are only called 
    // when they are recreated or on app start, instead of every page change. 
    // To listen for when this page is active (for example, to refresh data), 
    // listen for the $ionicView.enter event: 
    //$scope.$on('$ionicView.enter', function(e) { 
    //}); 

    // Form data for the login modal 
    $scope.action = { 
    // name:'', 
    // date: '', 
    // type:'' 
    }; 

    $scope.placeholder="01/01/2016"; 

    // Create the login modal that we will use later 
    $ionicModal.fromTemplateUrl('templates/addAction.html', { 
    scope: $scope 
    }).then(function(modal) { 
    $scope.modal = modal; 
    }); 

    // Triggered in the login modal to close it 
    $scope.closeActionModal = function() { 
    console.log('hello'); 
    $scope.modal.hide(); 
    }; 

    // Open the login modal 
    $scope.openAddActionModel = function() { 
    $scope.modal.show(); 
    $('#action_datePicker').val(new Date()); 
    }; 

    // $scope.abc = function(){ 
    // console.log('asdavshahs'); 
    // alert('Hello'); 
    // } 


    // Perform the login action when the user submits the login form 
    $scope.saveData = function() { 
    console.log('Doing login', $scope.action); 

    // Simulate a login delay. Remove this and replace with your login 
    // code if using a login system 
    $timeout(function() { 
     $scope.closeActionModal(); 
    }, 1000); 
    }; 
}) 

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

.controller('optionActionCtrl' , function($scope, $timeout , $http , $ionicModal){ 



    $scope.closeActionModal = function() { 
    console.log('hello'); 
    $scope.modal.hide(); 
    }; 

    // Open the login modal 
    $scope.openAddActionModel = function() { 
    $scope.modal.show(); 
    // $('#action_datePicker').val(new Date()); 
    }; 

    $scope.showListOfUser = function(){ 
    //call made to the server 
    //bind the modal to get it open 
    $ionicModal.fromTemplateUrl('templates/showUsers.html', { 
     scope: $scope 
    }).then(function(modal) { 
     debugger; 
     $scope.modal = modal; 
    }); 
    $scope.modal.show(); 
    // add all the users 
    $scope.users = ['a' , 'b' , 'c' , 'd']; 
    }; 
}) 

Пожалуйста, скажите мне, что это такое, что я делаю неправильно

UPDATE

Теперь я пытаюсь открыть состояние и увидеть некоторые данные bbut проблемы, я не в состоянии видеть пользователь, а затем все HTML визуализируется. Вот код для моего зрения:

<ion-view view-title="ShowUserList"> 
    <ion-content> 
    <!-- <ion-checkbox ng-model='checkStatus1' ng-click="showAlert(checkStatus1)"> 
     <h2 class="ng-binding">{{tittle}}</h2> 
     <span class="distance ng-binding"></span> 
     <h3 class="ng-binding">Created : {{created}}</h3> 
     <h3 class="ng-binding">Target : {{targetD}}</h3> 
    </ion-checkbox> --> 

    <ion-list> 
     <ion-item collection-repeat="user in users"> 
     Hello, {{user}}! 
     </ion-item> 
    </ion-list> 


    </ion-content> 

и я изменил контроллер немного

.controller('optionActionCtrl' , function($scope, $timeout , $http , $ionicModal , $state){ 
    // Triggered in the login modal to close it 

    $scope.users = []; 

    $scope.closeActionModal = function() { 
    console.log('hello'); 
    $scope.modal.hide(); 
    }; 

    // Open the login modal 
    $scope.openAddActionModel = function() { 
    $scope.modal.show(); 
    // $('#action_datePicker').val(new Date()); 
    }; 

    $scope.showListOfUser = function(){ 
    debugger; 
    // add all the users 
    $scope.users = ['a' , 'b' , 'c' , 'd']; 

    $state.go('app.UserListForAssigned') 
    }; 
}) 
+0

'$ scope.modal.show()' вызывается до того, как будет создан новый модаль. Поместите '$ scope.modal.show()' внутри обратного вызова 'fromTemplateUrl'. – Eric

ответ

2

optionActionCtrl Исправьте контроллер. Поместите $scope.modal.show() внутри обратного вызова.

.controller('optionActionCtrl' , function($scope, $timeout , $http , $ionicModal){ 
    $scope.closeActionModal = function() { 
     console.log('hello'); 
     $scope.modal.hide(); 
    }; 

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

    $scope.showListOfUser = function() { 
     $ionicModal.fromTemplateUrl('templates/showUsers.html', { 
      scope: $scope 
     }).then(function(modal) { 
      $scope.modal = modal; 
      $scope.modal.show(); // Moved inside the callback 
      $scope.users = ['a' , 'b' , 'c' , 'd']; // I assume this is relevant to your modal 
     }); 
    }; 
}) 
+0

Спасибо, это помогло. Я хотел бы узнать другое. то есть вместо того, чтобы показывать модальный, я хотел бы пойти, чтобы сделать другое представление о том, когда вы входите в этот модальный. Проблема, с которой я сталкиваюсь, это то, что я не могу видеть данные над ними, которые я отправляю в '$ scope.users' –

+0

@ J.Doe Up голосовать и принять этот ответ, а затем опубликовать еще один, и я помогу вам там , Я считаю, что это два отдельных вопроса. – Eric

+0

@ J.Doe И также размещать содержимое 'templates/showUsers.html'. – Eric

Смежные вопросы