如何自动更新页面上的数据,Angular 7 和 Spring Boot

Posted

技术标签:

【中文标题】如何自动更新页面上的数据,Angular 7 和 Spring Boot【英文标题】:How to auto-update data on the page, Angular 7 and Spring Boot 【发布时间】:2019-02-16 14:00:46 【问题描述】:

我正在尝试实现数据实时更新的页面。我试图为此实现一些网络套接字,但基本上所有示例和教程都存在,需要发送消息(我的项目中的想法是,数据将从不同的源加载,因此我没有任何帖子函数,只能获取)。情况变得越来越复杂,因为这基本上是详细信息页面,它通过特定的 id 加载结果。

因此我的问题是 - 我怎样才能实现实时更新?

这是来自 Controller.java

@GetMapping("data/data_id")
public Optional<Data> findByData_id(@PathVariable("data_id") Long data_id)
Optional<Data> data = dataRepository.findById(data_id);
return data;

来自 data.service.ts

getDataById(data_id: number): Observable<any> 
return this.http.get<Data[]>('http://localhost:8080/data/' + data_id)

来自 data.details.component.ts

const tracker_id = +this.route.snapshot.params["data_id"];
this.data_table.getDataById[data_id]
.subscribe(data_table=> 
this.data_table.data_table = data_table as Data[];
this.data_table_var = this.data_table.data_table;

【问题讨论】:

请说明您如何在组件中使用getDataById() @dileepkumarjami 已编辑并在组件中获取数据 【参考方案1】:

如果你想实时更新数据,你需要使用 web socket。

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) 
        registry.addEndpoint("/socket")
                .setAllowedOrigins("*")
                .withSockJS();
    

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) 
        registry.setApplicationDestinationPrefixes("/app")
                .enableSimpleBroker("/chat");
    

这是很好的参考 https://medium.com/oril/spring-boot-websockets-angular-5-f2f4b1c14cee

【讨论】:

我试图通过这个 guid 来实现,但不太明白如何将它应用到我的模型中。

以上是关于如何自动更新页面上的数据,Angular 7 和 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

将值传递给子组件Angular 7

angular 数据绑定

如何在使用 UIpageviewcontroller 导航页面时从另一个视图控制器自动更新视图控制器上的标签

Angular:组件视图上的数据仅在执行单击操作时更新

如何使用 Angular 7 保持 AngularCLIServer 在 asp.net 核心上的构建之间运行

如何在 Angular 7 中将初始值和验证设置为 ng 自动完成?