我正在尝试使用$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;
}
});
}
答案 0 :(得分:1)
替换以下内容:
buttonClicked: function(index, $scope) {
使用:
buttonClicked: function(index) {
或者将第二个参数重命名为例如:
buttonClicked: function(index, button) {
否则它将覆盖$scope
变量。传递给buttonClicked函数的第二个参数不是$scope
,而是按钮对象。