如何在buttonClicked上调用$ ionicActionSheet以外的函数?

时间:2015-01-23 15:59:39

标签: javascript angularjs ionic-framework

我正在尝试使用$ionicActionSheet来执行一个函数。此外,在下面的示例中,我想在用户点击“执行其他操作”的第一个选项时调用doSomethingElse()。我可以成功地在函数buttonClicked()内执行命令,但它不想在外面调用函数。

//在控制器

$scope.doSomethingElse = function(textStr) {
    window.alert(textStr)
}

$scope.showActions = function(friendName) {
    $ionicActionSheet.show({
     buttons: [
       { text: 'do something else },
       { text: 'do something' },
     ],
     destructiveText: 'View all',
     titleText: '<h4>' + friendName + ' </h4>',
     cancelText: 'Cancel',
     buttonClicked: function(index, $scope) {
       if(index==0) {
         // window.alert("Hello");  works fine
         $scope.doSomethingElse("Index 0")
       }
       if(index==1) {
         // window.alert("Hello");  works fine too
         $scope.doSomethingElse("Index 1")
       }
       return true;
     },
     destructiveButtonClicked: function() {
       window.alert("Hey All");
       return true;
     }
   });

}

1 个答案:

答案 0 :(得分:1)

替换以下内容:

buttonClicked: function(index, $scope) {

使用:

buttonClicked: function(index) {

或者将第二个参数重命名为例如:

buttonClicked: function(index, button) {

否则它将覆盖$scope变量。传递给buttonClicked函数的第二个参数不是$scope,而是按钮对象。