首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

单击浏览器的后退按钮时,Angular2 material对话框越来越近,我们可以避免这种情况吗?

当单击浏览器的后退按钮时,Angular2 Material对话框会逐渐靠近的情况是由于浏览器的历史记录导致的。在Angular中,可以通过以下几种方式来避免这种情况:

  1. 使用Angular Router的导航守卫:可以在路由导航过程中检查是否存在打开的对话框,并在导航开始时关闭对话框。可以使用CanDeactivate守卫来实现这一点。
  2. 监听浏览器的popstate事件:可以在浏览器的后退按钮被点击时触发相应的事件处理函数,在该函数中关闭对话框。
  3. 使用Angular Material的MatDialog服务:可以通过订阅对话框的关闭事件,在对话框关闭时执行相应的操作,例如在关闭对话框时导航到其他页面。

需要注意的是,以上方法只是避免对话框靠近的一种方式,具体的实现方式可能因项目的具体需求而有所不同。此外,还可以根据具体情况考虑使用其他的前端技术或框架来实现对话框的管理和控制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter Widgets 之 Dialog 对话框

,比如删除文件时,一般会弹出提示“是否要删除当前文件”,用户点击确认后才会进行删除操作,这时我们可以使用提示框(AlertDialog或者CupertinoAlertDialog)。...根据设计的不同,我们可以选择Material风格的AlertDialog或者Cupertino(ios)风格的CupertinoAlertDialog, Material风格基础用法如下: RaisedButton...用户点击“取消”或者“确定”按钮后退出对话框,App需要知道知道用户选择了哪个选项,用法如下: RaisedButton( child: Text('切换'), onPressed: () async...如果你觉得这还是不够个性,那可以祭出终极大招了,直接使用Dialog,Dialog可以定制任何对话框,只需将对话框的内容给child属性: Dialog( child: MyDialog(), );...当然一般情况下,系统提供的对话框就够用了,这几个对话框组件用法基本一样,不同的地方仅仅是灵活性和使用简易程度的不要,Dialog最灵活,但使用起来比AlertDialog复杂一些,AlertDialog

1K10

Material Design — 提示框( Dialogs)

关闭提示框 提示框可以通过点击提示框外部或点击系统后退按钮(在Android上)来关闭。 有时候,用户必须做出选择动作后才能关闭提示框。...如果需要标题: ·在内容区域使用明确的问题或陈述,例如“擦除USB存储器?” ·避免道歉,模棱两可或提问,例如“警告!”或“你确定吗?” ?...例如,用户可以聆听多个铃声,但只能在触摸“ok”时进行最终选择。 点击确认对话框中的“取消”,或按Android的“后退”,取消操作,放弃所有更改并关闭对话框。 ?...全屏对话框可实现复杂的布局,将多个材料堆积的情况简化(提示框上层的提示框),并暂时将app可感知的海拔重置为更高。 全屏对话框允许任务在复杂操作时开启简单菜单或简单提示框。...确认按钮将被禁用,直到满足对话框中的所有必填字段都完成时,确认操作才会被激活 丢弃(离开) 丢弃操作(屏幕左上角的“X”)和后退按钮均会关闭全屏对话框并放弃之前所做的更改。

5.2K101
  • Flutter Widgets 对话框-Dialog

    ,比如删除文件时,一般会弹出提示“是否要删除当前文件”,用户点击确认后才会进行删除操作,这时我们可以使用提示框(AlertDialog或者CupertinoAlertDialog)。...根据设计的不同,我们可以选择Material风格的AlertDialog或者Cupertino(ios)风格的CupertinoAlertDialog, Material风格基础用法如下: RaisedButton...的属性相对比较丰富,可以设置title样式、content样式、背景颜色、阴影值,设置是形状: AlertDialog( title: Text('提示'), content: Text('确认删除吗...shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdrczE5ODc=,size_16,color_FFFFFF,t_70] 用户点击“取消”或者“确定”按钮后退出对话框...,直接使用Dialog,Dialog可以定制任何对话框,只需将对话框的内容给child属性: Dialog( child: MyDialog(), ); 当然一般情况下,系统提供的对话框就够用了,这几个对话框组件用法基本一样

    1.4K11

    JavaScript(九)

    如果用户单击了 OK 按钮,则 prompt() 返回文本输入域的值,如果用户单击了 Cancel 或没有单击 OK 而是通过其他方式关闭了对话框,则该方法返回 null 这些系统对话框很适合向用户显示消息并请用户作出决定...当通过上述任何一种方式修改 URL 之后,浏览器的历史记录中就会生成一条新记录,因此用户通过单击”后退”按钮都会导航到前一个页面。 要禁用这种行为,可以使用 replace() 方法。...出于安全方面的考虑,开发人员无法得知用户浏览过的 URL。不过,借由用户访问过的页面列表,同样可以在不知道实际 URL 的情况下实现后退和前进。...负数表示向后跳转(类似于单击浏览器的”后退”按钮),正数表示向前跳转(类似于单击浏览器的”前进”按钮)。...顾名思义,这两个方法可以模仿浏览器的”后退”和”前进”按钮。 除了上述几个方法外,history 对象还有一个 length 属性,保存着历史记录的数量。

    1.1K40

    JavaScript 高级程序设计(第 4 版)- BOM

    ,以及文本框的默认值 如果用户单击了 OK 按钮,则 prompt()会返回文本框中的值。...如果用户单击了 Cancel 按钮,或者对话框被关闭,则 prompt()会返回 null find()和print(): 这两种对话框都是异步显示的,即控制权会立即返回给脚本 显示查找对话框或打印对话框...,除了hash外,设置location的一个属性就会导致页面重新加载新URL 如果不希望增加历史记录,可以使用replace()方法,重定向后后退按钮是禁用状态 reload() 能重新加载的当前显示的页面...此时单击“后退”按钮,就会触发 window 对象上的 popstate 事件 popstate 事件的事件对象有一个 state 属性,其中包含通过 pushState()第一个参数传入的 state...对象 点击“后退”按钮直到返回最初页面时, event.state 会为 null 可以通过 history.state 获取当前的状态对象,也可以使用replaceState()并传入与pushState

    1.2K10

    AngularDart 4.0 高级-路由概述 顶

    点击页面上的链接,浏览器导航到新页面。 点击浏览器的后退和前进按钮,浏览器会前后浏览您浏览过的网页的历史记录。 Angular路由器借鉴了这种模式。...它可以将浏览器URL解释为导航到客户端生成视图的指令。它可以将可选参数传递给支持视图组件,以帮助确定要呈现的具体内容。您可以将路由器绑定到页面上的链接,并在用户单击链接时导航到适当的应用程序视图。...当用户点击按钮,从下拉框中选择,或者响应来自任何来源的其他刺激时,您都可以进行命令式导航。并且路由器在浏览器的历史记录中记录活动,所以后退和前进按钮也起作用。...与英雄细节不同,当您键入更新时,危机细节更改是暂时的,直到您通过按下“Save”或“Cancel”按钮保存或放弃它们。 这两个按钮都回到危机中心及其危机列表。 不要单击任一按钮。...点击浏览器后退按钮或“英雄”链接。 向上弹出一个对话框。 ? 您可以选择“OK”并丢失您的更改,或单击“Cancel”并继续编辑。 这种行为的后面是路由的routerCanDeactivate挂钩。

    6.1K20

    对话框、模态框和弹出框看起来很相似,它们有何不同?

    有时 popover 可以是 (无模式) 对话框,在这种情况下,可以使用 。...按钮还可以设置为只显示或只隐藏,在这种情况下,使用 show 或 hide 操作 popovertargetaction。...据我今天的理解,它可以让我们自动将弹出框放置在最合适的位置,避免与窗口边缘发生碰撞。有点像今天的库,但内置于浏览器中。 为了定位弹出框,有一个非常令人兴奋的提议叫做CSS 锚点定位。...据我理解,它将允许我们自动定位在最合适的位置,避免与窗口边缘发生碰撞。有点像 Popper 库今天所做的,一旦提议实现那么将可以在浏览器中直接使用。...当用户打开它时,这是他们唯一想要看到的东西吗?这是一个棘手的问题,我感觉模态对话框可以工作,非模态对话框也可以工作。

    4K00

    Matplotlib 中文用户指南 7.1 交互式导航

    以下是工具栏底部的每个按钮的说明: Home(首页)、Forward(前进)和Back(后退)按钮: 这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。...它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上的返回 - 什么都不会发生。 首页总是你第一个浏览的页面,以及你的数据的默认视图。...单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它时,你按下的点处的数据将移动到你释放的点。...可以使用鼠标左键拖动半径轴标签。 可以使用鼠标右键放大和缩小半径刻度。 Zoom-to-rectangle(缩放到矩形)按钮 单击此工具栏按钮以激活此模式。 将鼠标放在轴域的某处,然后按鼠标左键。...Subplot-configuration(子图配置)按钮 使用此工具配置子图的参数:左边距,右边距,上边距,下边距,行间隔和列间隔。 Save(保存)按钮 单击此按钮可启动文件保存对话框。

    2.1K20

    Flutter中如何使用WillPopScope

    以下几种情况我们会用到WillPopScope: 需要询问用户是否退出。...询问用户是否退出 在Android App中最开始的页面点击后退按钮,默认会关闭当前activity并回到桌面,我们希望此时弹出对话框或者给出提示“再次点击退出”,避免用户的误操作。...在Android App中最开始的页面点击后退按钮,默认会关闭当前activity并回到桌面,我们希望此时弹出对话框或者给出提示“再次点击退出”,避免用户的误操作。...不过在一些情况下,我们希望有自己定义的Navigator,比如如下场景: 在页面底部有一个常驻bar,其上展示内容,这个常驻bar就需要一个自己的Navigator。...在使用TabView、BottomNavigationBar、CupertinoTabView这些组件时,希望有多个Tab,但每个Tab中有自己的导航行为,这时需要给每一个Tab加一个Navigator

    1.5K20

    excel常用操作大全

    在EXCEL菜单中,单击文件-页面设置-工作表-打印标题;您可以通过按下折叠对话框的按钮并用鼠标划定范围,将标题设置在顶端或左端。这样,Excel会自动将您指定的部分添加为每页的页眉。...一般来说,我们习惯在表单上使用斜线,但是工作表本身不提供这个功能。事实上,我们可以使用绘图工具来实现: 点击“绘图”按钮,选择“直线”,鼠标将变成一个十字。...此时,您可以这样做:首先,选择要保护的单元格区域,在“格式”菜单中选择“单元格”命令,选择“保护”,从对话框中选择“锁定”,然后单击“确定”退出。...28、命名工作表时应注意的问题 有时,为了直观起见,经常需要重命名工作表(Excel中的默认表名是sheet1、sheet2.)。重命名时,最好不要使用现有的函数名作为表名,否则在以下情况下会有歧义。...当我们在工作表中输入数据时,我们有时会在向下滚动时记住每个列标题的相对位置,尤其是当标题行消失时。此时,您可以将窗口分成几个部分,然后将标题部分保留在屏幕上,只滚动数据部分。

    19.3K10

    如何使用WijmoJS 纯前端设计器,快速生成 Angular 应用

    修改现有的控件 标记每当您在VS Code中打开HTML文件时,都会激活WijmoJS VSCode Designer。 让我们首先打开一个WijmoJS示例HeaderFilters。...要返回FlexGrid表格控件的设置,请单击“属性”窗格中的“后退”按钮。 如果对设计器中所做的更改感到满意,请单击WijmoJS 徽标下方的“保存”按钮以更新原始源文件的编辑器并将其重点关注。...单击axisY属性的齿轮图标,然后将format属性设置为字符串c0,表示零小数位的货币值。 单击“属性”窗格中的“后退”按钮以返回FlexChart的设置。...接下来,单击图例属性的齿轮图标,并将其位置设置更改为“底部”。 像以前一样单击后退按钮返回FlexChart设置。 通过将其标题属性设置为Most Active,为图表添加标题。...在这种情况下,设计器以斜体显示只读文本框中的绑定。 保存操作期间保留绑定事件; 但是,在设计器中没有用于创建或编辑它们的界面。

    5.4K40

    Win Server 2003 10条小技巧

    单击“操作”菜单上的“新用户”,然后在弹出的“新用户”对话框中键入您准备使用的用户名、密码,然后清除“用户下次登录时须更改密码”复选框的选中状态(如图3),再单击“创建”按钮,然后单击“关闭”按钮关闭对话框...创建新的用户账户后,我们还需要赋予其管理员权限,以后用起来才比较方便。双击新创建的用户账户名称,在弹出的“用户属性”对话框中单击“隶属”选项卡,单击下方的“添加”按钮。...设置项,用鼠标右键单击该项,选择“属性”(如图5),在“显示关闭跟踪程序属性”对话框中选择“已禁止”,然后单击“确认”按钮,即可避免关闭电脑时的麻烦。 ...在弹出对话框中列出的Windows组件中清除“Internet Explorer 增强的安全配置”的选中状态,然后单击完成,就可以在重启动Internet Explorer浏览器后使增强的安全设置失效。...如果您想保留增强的安全设置功能,而又希望尽量减少它带来的不便,那么可以在打开浏览器时弹出“系统已启动增强的安全设置”警告对话框时,选中左下角的“以后不显示这个信息”对话框来避免每次转到新的网页都收到一次警告

    2.4K20

    AJAX常见面试问题

    3.有没有遇到过这种情况 在ie浏览器中 后台图片数据已经改变 但是客户端没有发生改变 该怎么处理?...一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中,这将无法实现。...答案是肯定的,用过Gmail的知道,Gmail下面采用的Ajax技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变Ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时...(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)...一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax,比如说我们在手机的浏览器上打开采用Ajax技术的网站时,它目前是不支持的。 .客户端过肥,太多客户端代码造成开发上的成本。

    1.8K20

    大漠穷秋:全面解读Angular 4.0核心特性

    摘要 基于最新的Angular4.0版本,超级大咖大漠穷秋为我们讲解强大的集成开发平台Angular/cli,以及Angular最核心的3大概念:组件、模块、路由。...Router 如果没有router,浏览器的前进后退按钮就不能用,也无法把URL拷贝并分享给你的朋友。...做异步路由时要注意的是,写的是loadchildren,加载的对象是module而不是component。由此可见,NgModule是用来配合Angular/cli做模块的打包和加载。...例如ng2-bootstrap、PrimeNG和官方提供的Angular-Material2,在移动端也有Ionic支持。...前端用户Angular做它的前端框架,它实现了Angular1和Angular2两个版本,选择范围比较广。可以利用它快速搭建应用框架。 今天的分享到此结束,谢谢大家!

    2.1K50

    PS模块第十节:PA PLM220详细练习

    通过单击 Enter 图标来确认您的条目。 c) 可能会出现一个对话框,您可以选择采购类型。在对话框中,选择“网络的购买申请”,并通过单击“继续”图标确认您的条目。 d) 显示组件的详细信息屏幕。...所有新的组件分配现在都显示在结果概述中。单击保存图标,并在必要时确认任何调度警告。通过单击“后退”图 标来退出 BOM 传输。...使用“后退”按钮退出事务处理。...输入 0001 作为材料的存储位置,并 在必要时为每个项目设置 OK 指示符。单击“Post”图标,然后通过单击“后退”图标退出事务。 7.订单报工 一旦生产订单的部件发货,就可以处理订单。...版权归原作者所有,如有侵权请联系删除 ---- 免责声明:本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!

    3.8K22

    BubbleRob tutorial 遇到的问题

    考虑模型的角色:能够将它附加到其他对象上吗?(例如,你的模型是一个可以连接到机械臂手腕的夹具)。或者你能给它加上别的模型吗?(例如,您的模型是一个可以接受夹持器模型的机械手)。...模型文件(“*.ttm”-文件)也支持资源管理器窗口和应用程序窗口之间的拖放操作。模型文件也可以双击,在这种情况下,它们将启动V-REP应用程序并加载到一个默认场景中。...你也可以双击场景层次结构中的对象图标来打开对话框,或者单击它的工具栏按钮: ? 在“场景对象属性”对话框中,单击“公共”按钮以显示“对象公共属性”对话框。对话框显示最后选择对象的设置和参数。...在这种情况下,可以使用collection self-collision indicator:同一collection中的两个item,如果它们的indicator difference正好为1,则不进行核对...矩阵将被应用:如果勾选此项,那么对象在装配时将不会呆在原地:一个特定的变换矩阵将被用作其新的局部变换矩阵。默认情况下,这个矩阵是单位矩阵,但是您可以通过单击Set matrix指定一个特定的矩阵。

    1.8K10

    VBA实战技巧32:安装Excel加载宏

    我们知道,有多种方法可以进入“Excel加载宏”对话框。最简单的就是,单击功能区“开发工具”选项卡“加载项”组中的“Excel加载项”,即可打开如下图1所示的的“加载宏”对话框。...图1 复杂一点的方法就是,单击Excel左上角的“文件——选项”,在“Excel选项”对话框中,单击左侧的“加载项”选项卡,在右侧下方的“管理”下拉列表中选择“Excel加载项”,单击其右侧的“转到”按钮...这两种方法的操作演示如下图2所示。 图2 如果你的加载宏不在“可用加载宏”列表中,则必须单击该对话框右侧的“浏览”按钮,进行查找,然后将其添加到可用加载宏列表中。...2.注册表 对于与上述位置不同的加载项,Excel将在注册表中查找。当单击“浏览”按钮以查找加载项时,会在此处添加键。...在这种情况下,使用Application.Ontime启动所需的过程。

    5.3K20

    如何制作自己的原生 JavaScript 路由

    每当在浏览器的地址栏中输入新的 URL,但我们不想刷新页面时,就会发生这种情况,我们只是想通过加载新内容来刷新视图。 你可以选择将路由存储在 routes[] 数组中。...太糟糕了,因为单击浏览器的“后退”和“前进”按钮与浏览历史记录中的 URL 导航有关。如果没有 History API,就无法谈论路由。...history.back() 与 history.go(-1) 相同,或者当用户在浏览器中单击 Back 按钮时。你可以用任何一种方法达到相同的效果。...这就是使浏览器无需重新加载页面即可更改 URL 的原因。 结果:现在,每次我们单击按钮时,URL 实际上都会在浏览器的地址栏中更改。内容框也会更新。 ? 我们的原生 JS 路由开始运行了。...这是你必须再次更新视图的部分。(第一次是我们单击按钮时。) 但是由于该事件带有单击的 id,因此单击 Back 或 Forward 时很容易刷新视图并重新加载内容。

    3.9K20

    window对象(一) 计时器 定位导航 url解析 浏览历史 对话框 消息推送

    // 单击浏览器的后退按钮2次、 history.go(-2) // 单击浏览器的前进按钮2次 history.go(2); 由于ajax的技术的存在,导致会发生这种事情。...2008年,到2018年,整整10年 可以根据 navigator.userAgent 获取当前浏览器的一些信息。...,例如屏幕的大小,分辨率等 对话框 一个桌面消息推送 谷歌浏览器支持桌面消息推送(套壳浏览器也支持,都是一个内核的,无所谓支持不支持) https://developers.google.com/web...以后这也是需要弥补的一个地方、 alert confirm prompt alert 只有一个确定按钮,用于警告等内容 confirm 一个可选的消息,以及两个按钮,在浏览器的地址栏正中央的下方弹出,chromer...alert()也是如此,也会产生阻塞 还有一个为showMondalDialog(),会显示一个包含html的格式的模拟对话框。可以给其传入参数,然后从对话框返回值。

    68840
    领券