如何在单击ionicActionSheet选项时打开ionicPopup?

时间:2014-08-29 13:27:17

标签: javascript angularjs ionic-framework

我试图在用户点击“自定义”按钮时打开弹出窗口。动作表上的按钮,我无法弄清楚如何在两者之间进行交互。我最好的猜测在下面,就像我打电话给ng-click =" showPrompt()"在视图中,弹出窗口被触发,但是当我尝试从动作表上的buttonClicked事件中执行此操作时,它是不行的。

.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;
              }
            }
          },
        ]
      });
    };
})

1 个答案:

答案 0 :(得分:2)

尝试使用$scope,因为该函数在该上下文中未定义,但$ scope是通过闭包定义的:

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