当前位置: 首页 > 面试题库 >

AngularJS-当确认对话框为假时如何取消下拉菜单中的更改事件?

昌和悦
2023-03-14
问题内容

我正在使用Angularjs。我的问题是,当我在下拉菜单中选择一个新选项时,将出现一个对话框。如果对话框的结果为false,则所选的下拉选项必须相同。将分析其他开发者的想法。先感谢您!

请参阅下面的代码片段:

<div ng-app="myApp" ng-controller="myCtrl">

  <select ng-model="myDropDown" ng-change="Dialog()">

    <option>a</option>

    <option>b</option>

  </select>

</div>



<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<script>

var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {

    $scope.Dialog = function () {

        var dialog = confirm('Continue?');

        if(!dialog) {

            alert("Option must not change");

            /** The problem is the dropdown still select the option. **/

        }

    }

});

</script>

问题答案:

这是您可能不知道的窍门:

ng-change="dialog(myDropDown)"         // pass the NEW value of myDropDown
ng-change="dialog('{{myDropDown}}')"   // pass the OLD value of myDropDown

调用dialog(),可以将先前选择的选项作为参数传递。

然后,如果取消对话框,只需回滚即可。

var app = angular.module('myApp', []);



app.controller('myCtrl', function($scope) {

    $scope.dialog = function(prev) {

        var dialog = confirm('Continue?');

        if(!dialog) {

            $scope.myDropDown = prev;

            alert("Option must not change");

        }

    }

});


<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>



<div ng-app="myApp" ng-controller="myCtrl">

  <select ng-model="myDropDown" ng-change="dialog('{{myDropDown}}')">

    <option>a</option>

    <option>b</option>

  </select>

</div>


 类似资料:
  • 问题内容: 我正在尝试使用自定义angularjs指令在上设置确认对话框: 这很好用,但不幸的是,未评估使用我的指令的标记内的表达式: (这种情况下不评估名称)。这似乎是由于我的指令的终端参数。您有解决方法的想法吗? 要测试我的代码,请执行以下操作:http : //plnkr.co/edit/EHmRpfwsgSfEFVMgRLgj?p=preview 问题答案: 如果您不介意不使用,则可以正常

  • 问题内容: 我有以下形式的数据 我想要两个下拉菜单。第一个下拉列表将显示“名称”。当用户从第一个下拉列表中选择名称时,应在第二个下拉列表中填充相应的“版本”。 无效的jsfiddle链接:http://jsfiddle.net/fynVy/174/ 问题答案: 您需要调整HTML模板,以便第一个下拉列表显示服务器名称,并且第二个下拉列表的选项基于所选下拉列表(第一个下拉列表的ngModel)中的版

  • 问题内容: 我希望此链接具有一个JavaScript对话框,询问用户“ 您确定吗? 是/否 ”。 如果用户单击“是”,则链接应该加载,如果“否”,则什么也不会发生。 我知道如何通过运行返回或的函数以表格形式进行操作。但是,我该如何使用链接呢? 问题答案: 内联事件处理程序 以最简单的方式,您可以在内联处理程序中使用该函数。 高级事件处理 但是通常情况下,您希望将HTML和Javascript分开,

  • 问题内容: 对于带有警报的简单表单,询问是否正确填写了字段,我需要执行以下操作的函数: 单击带有两个选项的按钮时显示警报框: 如果单击“确定”,则提交表单 如果单击“取消”,则警告框关闭,可以调整并重新提交表单 我认为JavaScript确认会起作用,但我似乎无法弄清楚该怎么做。 我现在拥有的代码是: 问题答案: 一个简单的 内联JavaScript确认 就足够了: 除非您正在执行 验证 ,否则不

  • 问题内容: 如何在AngularJs中取消路线更改事件? 我当前的代码是 即使验证失败,Angular也会提取下一个模板和关联的数据,然后立即切换回上一个视图/路线。如果验证失败,我不希望angular提取下一个模板和数据,理想情况下应该没有window.history.back()。我什至尝试过event.preventDefault()但没有用。 问题答案: 代替使用 这是angularjs专

  • 本文向大家介绍Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码,包括了Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码的使用技巧和注意事项,需要的朋友参考一下 Android中可以创建三种对话框、确定取消对话框、单选对话框、多选对话框 android中的确定取消对话框演示示例 Android中使用单选对话框的演示案例 android中使用多选