Я пытаюсь создать приложение, например pastebin.com, где я могу использовать подсветку синтаксиса. Теперь я пытаюсь сделать метод обмена файлами. Я получаю все данные из. NET Core API, и ответ - именно то, что мне нужно.
Проблема в том, что когда я открываю общую ссылку, компонент инициализируется до того, как обещание будет выполнено.
Допустим, я хочу открыть следующую ссылку: http://localhost: 4200 / shared / 1
Когда я открываю ссылку, данные, где файл = 1 выбирается и помещается в модель. Затем я хочу, чтобы компонент был загружен и отображен html.
Я не понимаю, как работает распознаватель, что я могу сделать? Спасибо.
user.service.ts
@Injectable({
providedIn: 'root'
})
export class UserService implements Resolve<any> {
resolve(route: ActivatedRouteSnapshot){
console.log('Logging collected route parameter', route.params['file']);
this.http.get(this.BaseURL + '/Share?IdentityString=' + route.params['file'])
.subscribe(res =>{
this.sharedFormData = res as ShareModel;
console.log(this.sharedFormData);
});
}
}
app-routing.module.ts
export const routes: Routes = [
{
path: 'shared/:file',
component: FileShareComponent,
resolve: {
shared: UserService
}
}
]
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
fileshare.component. html
export class FileShareComponent implements OnInit {
constructor(
private route: ActivatedRoute,
private router: Router,
private service: UserService,
private http: HttpClient
) {}
ngOnInit() {
console.log('Component initialized');
}
}
fileshare.component. html
<code><pre class="text-white"style="color: white;">Name: {{service.sharedFormData?.Name}}
Описание: {{service.sharedFormData? .Description}} Синтаксис: {{service.sharedFormData? .Syntax}} LastModified: {{service.sharedFormData? .LastModified | дата: "ЧЧ: мм дд / мм / гггг"}} ExpirationDate: {{service.sharedFormData? .ExpirationDate | дата: "ЧЧ: мм дд / мм / гггг"}}
<code class="hljs">{{service.sharedFormData?.Content}}</code>
Вот как выглядит URL: http://localhost: 4200 / общий / MThBU1AgLk5FVCBDb3Jl