从 $mdDialog 更新绑定
Update bindings from $mdDialog
我正在使用 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();
});
}
因此,在 table 上苦苦思索了 2 天后,一位朋友建议将范围变量设为数组对象,结果成功了。所以宣布
$scope.a = {warningToggle:0};
他说可能是因为原型继承。一般来说,我是 Angular 和 Javascript 的新手,所以我需要阅读它才能理解为什么它有效,但希望这可以帮助其他人。
我正在使用 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();
});
}
因此,在 table 上苦苦思索了 2 天后,一位朋友建议将范围变量设为数组对象,结果成功了。所以宣布
$scope.a = {warningToggle:0};
他说可能是因为原型继承。一般来说,我是 Angular 和 Javascript 的新手,所以我需要阅读它才能理解为什么它有效,但希望这可以帮助其他人。