我正在使用md-switch,它绑定到范围变量$ scope.warningToggle。当我单击开关时,会弹出一个确认对话框,要求用户确认是否确实要切换开关。如果用户点击取消或更新失败,我希望交换机恢复到以前的位置,但我似乎无法获得更新的绑定。使用ng-change在交换机上调用showToggleConfirmation函数。 warningToggle变量将为0表示关闭,1表示打开。 revertToggle函数只接受warningToggle并切换数字。因此,如果它是1,则将其更改为0,反之亦然。我尝试了以下几种变体:
$scope.showToggleConfirmation = function(event, customer, warningToggle) {
var messageText = toggleMessage(warningToggle);
var confirm = $mdDialog.confirm({
title: 'Confirm',
textContent: messageText,
ok: 'Confirm',
cancel: 'Cancel',
scope: $scope,
preserveScope: true,
parent: angular.element(document.body),
targetEvent: event,
});
$mdDialog.show(confirm).then(
function(answer) {
// Code when response is confirmed
},
function() {
revertToggle();
});
}
答案 0 :(得分:0)
因此,在我对这个桌子敲了两天之后,一位朋友建议将范围变量变成一个数组对象,并且它有效。如此宣布
$scope.a = {warningToggle:0};
他说这可能是因为原型继承。我一般都是Angular和Javascript的新手,所以在我能理解为什么会有效之前我需要阅读它,但希望这可以帮助别人。