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

MatDialog中的“‘router outlet”在Angular 7中不起作用

在Angular 7中,MatDialog是Angular Material库中的一个组件,用于创建模态对话框。而"router outlet"是Angular中用于显示路由组件的指令。

在问题中提到的"router outlet"在MatDialog中不起作用,这是因为MatDialog是一个独立的组件,它不会受到路由的影响。"router outlet"只能在路由模块中使用,用于显示路由组件。

如果想在MatDialog中使用路由功能,可以通过在MatDialog中嵌入一个带有"router outlet"的组件来实现。具体步骤如下:

  1. 创建一个带有"router outlet"的组件,例如DialogComponent。
  2. 在DialogComponent中定义需要显示的路由组件,并在路由模块中配置对应的路由。
  3. 在需要打开MatDialog的组件中,通过MatDialog的open方法打开DialogComponent,并将DialogComponent作为MatDialog的内容传入。

示例代码如下:

  1. 创建DialogComponent:
代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-dialog',
  template: `
    <router-outlet></router-outlet>
  `,
})
export class DialogComponent {}
  1. 在路由模块中配置路由:
代码语言:txt
复制
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DialogComponent } from './dialog.component';

const routes: Routes = [
  {
    path: '',
    component: DialogComponent,
    children: [
      // 定义需要显示的路由组件
      // 示例路由组件为HomeComponent
      { path: '', component: HomeComponent },
    ],
  },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class DialogRoutingModule {}
  1. 在需要打开MatDialog的组件中使用MatDialog:
代码语言:txt
复制
import { Component } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { DialogComponent } from './dialog/dialog.component';

@Component({
  selector: 'app-example',
  template: `
    <button (click)="openDialog()">Open Dialog</button>
  `,
})
export class ExampleComponent {
  constructor(private dialog: MatDialog) {}

  openDialog() {
    this.dialog.open(DialogComponent, {
      width: '500px',
      height: '300px',
    });
  }
}

通过以上步骤,就可以在MatDialog中使用路由功能了。当打开DialogComponent时,会显示定义的路由组件(例如HomeComponent)。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。腾讯云云服务器提供可扩展的计算能力,适用于各种应用场景。腾讯云云数据库MySQL是一种高性能、可扩展的关系型数据库服务,适用于各种规模的应用程序。

腾讯云云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm 腾讯云云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb_mysql

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

相关·内容

Ionic4与Ionic3部分比较

image.png 二、路由差异 也许Ionic 4最显着变化,以及需要对现有应用程序进行最大改变变化,是转向Angular风格路由。...ion-router-outlet,是对Angularrouter-outlet扩展,以兼容旧导航方式,打开tabs.page.html可看到下面内容: <ion-tab...Angular在这方面有点特殊,由于Ionic / Angular过去已经紧密集成,因此Ionic特定Push/Pop导航已经存在并且正在被其应用程序的人们使用。...action-sheet-controller loading-controller …… 前面2个一般是有自定义UIionic3是可通过自定义组件注入ViewController来关闭窗口,...ionic4已经没有这个方法,改为通过监听事件或回调给外面的xxx-controller来关闭。

7K10
  • Angular 从入坑到挖坑 - Router 路由使用入门指北

    一、Overview Angular 入坑记录笔记第五篇,因为一直加班缘故拖了有一个多月,主要是介绍 Angular 如何配置路由,完成重定向以及参数传递。...当定义好路由信息后,我们需要在页面上使用 标签来告诉 Angular 何处渲染出页面。...同样,我们也可以 js 完成路由跳转,对于这种使用场景,我们需要在进行 js 跳转组件类通过构造函数依赖注入 Router 类,之后通过 Router navigate 方法完成路由跳转...,因此当嵌套路由配置完成之后,嵌套父级页面上,我们需要定义一个 标签用来指定子路由渲染出口,最终效果如下图所示 我是父路由页面显示内容 ...-- 加载子路由数据 --> 子路由组件渲染出口 ?

    4.2K50

    Angular 应用是怎么工作

    Note:接到新任务时候,开始一个新 Angular 应用之前,我都会先看 angular.json 和 package.json 文件。我会通过这两个文件了解应用初始信息。...platformBrowserDynamic().bootstrapModule(AppModule) 也许你注意到了,上面的方法还传递了参数 AppModule。真正应用代码!... @NgModule 装饰器,我们有一个引导 bootstrap 数组,表明加载 AppComponent。...通过 app.component.html 模版文件(如下)路由出口 Router-outlet ,页面组件可以和 URL 一一对应,然后 标签内渲染。... 下面是它们之间匹配插图: 目前为止,你不需要知道路由权限。并不是所有的组件都需要路由守卫,目前知道有这么一回事就好。

    1.4K30

    component和renderreact router应用

    react router项目中,有这样一个需求,首先展示用户名列表,点击某个用户名后,根据用户名在后台取得用户具体信息详情页进行展示。...> ); export default App; 不过此时会有个问题,切换点击切换userA和userB时候,发现页面并没有更新,这是由component属性性质决定,react会进行组件复用。...所以需要在组件添加componentDidUpdate函数,期望userId发生变化后重新获取数据。...,componentDidUpdate需要判断当前userId是否和原来userId一致,只有不一致时候才需要重新获取数据。...> ); export default App; 可以看到由于将userId作为组件key,可以避免组件复用,从而降低代码复杂程度。

    1.8K40

    Angular 路由配置(预加载配置,懒加载配置)

    forRoot()//主模块定义主要路由信息 forChild()``//应用在特性模块(子模块) (2)懒加载:loadChildren 此处并没有将对应模块加入到AppModule,而是通过...组建同级新建一个selective-preloading-strategy.ts文件(需要在app-routing.module.tsproviders注入,然后路由中定义data通过附加参数来设置是否预加载...B.component.ts 比如在上面main.component.html有个区域用于放子视图(以下我都先讲思路,再放关键代码,其他不赘述) 下面的区域是另一个路由出口 <!...,需要在组件ts文件引入MainService (3)main.module.ts引入各组件(包括自身、路由配置文件所用到所有组件以及路由module) import { FormsModule

    3.2K30
    领券