当前位置: 首页 > 知识库问答 >
问题:

Angular 4创建后更新索引页

叶晋
2023-03-14

我正在构建一个音乐会Event站点。目前我有一个事件索引页面和一个事件创建页面。创建事件后,我重定向回索引页面,但除非我刷新索引页面,否则新事件不会显示。我希望新事件在我提交/创建新事件后自动出现。我尝试在组件之间共享数据,但似乎不起作用。我真的不知道正确的方法是什么。

事件路由。单元ts

const routes: Routes = [
  { path: 'event', component: EventIndexComponent },
  { path: 'event/create', component: EventCreateComponent },
  { path: 'event/edit/:id', component: EventCreateComponent }
];

event-create.component.ts

export class EventCreateComponent implements OnInit {
...
ngOnInit(): void {
  this.getVenues();
}

getVenues(){
  this.venueService.query().subscribe(
    venues => {
      this.venues = venues;
    },
    err => {
      console.log(err);
    }
  );
}

onSubmit() {
  if (this.eventForm.valid) {
    let date: Date = new Date(this.eventForm.controls['date'].value);
    let time: Date = new Date(this.eventForm.controls['time'].value);

    let event: Event = new Event(
      null,
      null,
      this.eventForm.controls['venue'].value,
      this.formatTimestamp(date, time),
      this.eventForm.controls['title'].value,
      this.eventForm.controls['description'].value
    );

    this.eventService.save(event).subscribe();

    this.router.navigate(['/event']);
   }
}

事件索引。组成部分ts

export class EventIndexComponent implements OnInit {
  event: Event;

  private events: Event[];

  constructor(
    private router: Router,
    private eventService: EventService
  ) { }

  ngOnInit() {
    this.getEvents();
  }

  getEvents(){
    this.eventService.query().subscribe(
      events => {
        this.events = events;
      },
      err => {
        console.log(err);
      }
    )
  }

event.service.ts

@Injectable()
export class EventService {

  private apiUrl = 'http://localhost:3000/events';

  constructor(private http: HttpClient) {}

  query(): Observable<Event[]>{
    return this.http.get(this.apiUrl).map(item => item as Event[]);
  }

  get(id: number): Observable<Event>{
    return null;
  }

  save(event: Event): Observable<Event>{
    return this.http.post<Event>(this.apiUrl, event);
  }

  delete(event: Event): Observable<Event>{
    return this.http.delete<Event>(this.apiUrl + '/' + event.id);
  }

  update(event: Event): Observable<Event>{
    return null;
  }
}

共有1个答案

李浩邈
2023-03-14

在事件创建中。组成部分ts,您正在HTTP调用结束前重定向。

请尝试以下操作:

onSubmit() {
  if (this.eventForm.valid) {
    let date: Date = new Date(this.eventForm.controls['date'].value);
    let time: Date = new Date(this.eventForm.controls['time'].value);

    let event: Event = new Event(
      null,
      null,
      this.eventForm.controls['venue'].value,
      this.formatTimestamp(date, time),
      this.eventForm.controls['title'].value,
      this.eventForm.controls['description'].value
    );

    this.eventService.save(event).subscribe(response => {
      this.router.navigate(['/event']);
    });
   }
}
 类似资料:
  • 源码 .. index:: 创建, 索引, 测试

  • 假设我有两组对象“Questions”和“Users”,它们共享一个关系。 什么是最好的方法索引我的对象,以允许最新的变化反映在lucene IDEX? 是否应该为用户和问题提供单独的文档,并让lucene根据需要获取所需的问题/用户详细信息? 还是,走数据传输对象的方式?当发生更改时,只需删除这些文档并重新索引?

  • 我在hibernate search 6中使用elasticsearch时遇到了问题。让我们假设我们有这样的设置: } } 当我第一次持久化EntityA(即被索引的实体)时,EntityB作为EntityA的子实体持久化在elasticsearch索引中。这是可以的。当我直接编辑EntityB并对其进行更改时,问题出现了,这种更改没有传播到elasticsearch索引。我错过了什么吗? 更新1

  • 问题内容: 如何使用Elasticsearch Nest API重新创建以下索引? 这是包含映射的索引的json: 这是我的尝试: 该文档没有提及任何内容? 更新: 找到了使用此帖子 然后添加带有字符串文字json的Analysis。 在哪里可以找到更多类似的例子,这行得通吗? 问题答案: 在旧版本中创建索引 您可以通过两种主要方法来完成此操作,如Nest Create Index文档中所述 :

  • 用于为表创建索引。 索引是一组指针,它指的是MDC或ITC表中的表块中的行,XML存储对象中的XML数据,这些XML数据在逻辑上按一个或多个键的值排序。 索引用于提高查询数据的速度以及有效地对数据进行聚类和分区。 索引可以增强视图操作的性能。具有唯一索引的表可以包含具有唯一键的行。 可以根据表要求创建不同类型的索引。 索引类型 唯一和非唯一索引 群集和非群集索引 单击create index,它将

  • 命令用于在用户指定的列上创建一个索引。 如果您选择索引的列已存在数据,则Cassandra会在“”语句执行后在指定数据列上创建索引。 语法: 创建索引的规则 由于主键已编入索引,因此无法在主键上创建索引。 在Cassandra中,不支持集合索引。 没有对列进行索引,Cassandra无法过滤该列,除非它是主键。 示例: 让我们举个例子来演示如何在列上创建索引。 在这里,我们为表“”中的“”列创建一