2014-08-29 2 views
0

Я пытаюсь открыть всплывающее окно, когда пользователь нажимает кнопку «custom» на листе действий, и я не могу понять, как взаимодействовать между ними. Мое лучшее предположение ниже, так как когда я вызываю ng-click = "showPrompt()" в представлении, всплывающее окно запускается, но когда я пытаюсь сделать это изнутри события buttonClicked на листе действий, это не-go.Как открыть ionicPopup при нажатии кнопки ionicActionSheet?

.controller('TablesCtrl', function($scope, $ionicPopup, $ionicActionSheet) { 
    $scope.tables = []; 

    /* Choose Number of Guests */ 
    $scope.showActionsheet = function($ionicPopup) { 
     $ionicActionSheet.show({ 
      titleText: 'How many guests?', 
      buttons: [ 
      { text: '1' }, 
      { text: '2' }, 
      { text: '3' }, 
      { text: '4' }, 
      { text: '5' }, 
      { text: '6' }, 
      { text: 'Custom' } 
      ], 
      cancelText: 'Cancel', 
      cancel: function() { 
      console.log('CANCELLED'); 
      }, 
      buttonClicked: function(index, $ionicPopup) { 
      console.log('BUTTON CLICKED', index); 
      if(index==6){showPrompt();} 
      return true; 
      } 
     }); 
     }; 
    /* CUSTOM Number of Guests */ 
    $scope.showPrompt = function() { 
     var myPopup = $ionicPopup.show({ 
     template: '<input type="password" ng-model="data.wifi">', 
     title: 'Enter Wi-Fi Password', 
     subTitle: 'Please use normal things', 
     scope: $scope, 
     buttons: [ 
      { text: 'Cancel' }, 
      { 
      text: '<b>Save</b>', 
      type: 'button-positive', 
      onTap: function(e) { 
       if (!$scope.data.wifi) { 
       //don't allow the user to close unless he enters wifi password 
       e.preventDefault(); 
       } else { 
       return $scope.data.wifi; 
       } 
      } 
      }, 
     ] 
     }); 
    }; 
}) 

ответ

2

Попробуйте использовать $scope потому что функция не определена в этом контексте, но $ сфера определяется с помощью закрытия:

if(index==6){$scope.showPrompt();} 
+0

LOL, я знал, что это будет что-то просто. Извините, но все же новый для Angular, даже MVC. Спасибо! – jdgower

+0

сделаю. 6 минут, пока я не могу отметить. – jdgower

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