javascript - 从 $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();
});
}
解决方案
因此,在为此敲了 2 天的头后,一位朋友建议将范围变量变成一个数组对象,并且它起作用了。所以宣布
$scope.a = {warningToggle:0};
他说这可能是因为原型继承。我一般是 Angular 和 Javascript 的新手,所以我需要先阅读它,然后才能理解为什么会这样,但希望这可以帮助其他人。
推荐阅读
- sql - 选择表中的最新记录
- asp.net-core - 如何将包含excel文件的表单数据发送到asp.net core中的控制器
- python - 基于多个条件和多个值分配变量
- ios - 如何在 M1 MacBook Pro 上的 Xcode 项目中下载 pod
- java - AES的计数器模式的计数器是如何递增的?
- python - 如何在 Python 中使用 Pandas 解析列中特定范围的数值?
- apache-spark - 重用pyspark缓存并在for循环中不持久
- excel - 为 Excel VBA 创建常量库的理想方法是什么?
- python - 无法使用 for 循环为我的值迭代列表
- kubernetes - 带有 skaffold 的 k3s:无法拉出容器