1
import { Component, NgModule } from '@angular/core';
import { MdDialog } from '@angular/material';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Product } from '../../models';
import { ProductService } from '../../services/product.service';
import { MdDialogRef } from '@angular/material';
@Component({
selector: 'product',
template: `
<button mdButton class="md-fab md-primary md-hue-2 addProduct" aria-label="Profile" (click)="openDialog()" >
add
</button>
`
})
export class ProductComponent {
constructor(public dialog: MdDialog, public dialogRef: MdDialogRef<AddProductComponent>) { }
openDialog() {
this.dialogRef = this.dialog.open(AddProductComponent);
}
}
@Component({
selector: 'addproduct',
template: require('./add.product.html'),
})
export class AddProductComponent {
constructor(public productService: ProductService, public dialogRef: MdDialogRef<AddProductComponent>) {
}
addProduct(product: Product) {
this.productService.addProduct(product).subscribe(() => {
this.dialogRef.close();
//this.productService.getAllProducts();
});
}
}
これは私にとって完璧に動作しますが、私はlogincomponentに角度4のmdDialogrefで通常のルーティングを行う方法は?
this.router.navigate(['/product']);
を使用する場合それは私に
ERRORエラーのエラースロー:(約束で)キャッチされない:エラー:MdDialogRefなしプロバイダーを!
私はstackoverflowの上でこの質問を経る:私はMdDialogRefのcomponentInstanceプロパティを使用してみましたが
"No provider for MdDialogRef!"
that tells that we should not use component by <product></product>.But I need to call product component when I get success of login.So How do I do normal routing with mdDialogRef ?
あなたはこれに対する解決策を見つけましたか? – EffGee
@EffGeeまだ:/あなたが私と共有することがあれば。私に知らせてください。 –
私は何をしました新しいcomponent.tsを作り、他の1つのcomponent.dialog.tsの名前を変更することです。これの大きな欠点は重複したコードですが、私は多分これを継承を使って解決したいと思います。 。ここで私のコードを見ることができます:https://github.com/Rian0702/luncher/tree/master/src/app/order/order-detail – EffGee