首页 文章

在服务器上获取数据后更新模型值

提问于
浏览
0

我有一个角度/离子应用程序,我提出服务器请求 . 获取数据后,我的模型(img src)应将其默认值(assets / imgs / anyfile.jpg)更新为我的新值(server / new / image / path)

但屏幕是在请求后创建的,甚至在我不知道之前...

该请求正在ngAfterViewInit上进行 .

应该在哪里调用我的updateImageFunction(),以便可以使用新值更新我的图像..?

任何帮助都会做人!谢谢

我无法提供代码,因为我在Angular和Ionic中使用PureMVC Framework . 没有通知和指令,我无法获得干净的代码 . 所以我会详细介绍一下 .

  • 应用程序加载了图像A和B,其路径来自Service.ts文件中的静态属性(assets文件夹上的默认路径);

  • 成为请求(ngAfterViewInit),我获取新路径并更新Service.ts属性;

  • 因为屏幕已经加载,所以图像已经从服务获取其路径(默认仍然是),并且所有这些之后都会进行更新 . 图像A和B不会更新

我认为它的生命周期问题,但不知道如何解决它...

2 回答

  • 1

    对我来说,替换图像的最佳方法是使用这样的ngIf:

    <img *ngIf="!imgOne" src="assets/placeholder.jpg" (click)="takePicture(1)"/>   
    <img *ngIf="imgOne" [src]="imgOne" (click)="openPicture(1)" />
    

    通过这样做,每当你替换imgOne angular将确保改变它 .

    应该在哪里调用我的updateImageFunction()

    当然回应之后 . 对DB的调用可以在ngAfterViewInit,ionViewDidEnter,ngOnInit甚至是构造函数中 .

  • 0

    如果您使用httpClient,则以角度形式提供服务器请求是冷可观察对象 . 这意味着一旦http请求完成,订阅就会自动消失 .

    为了使您始终拥有最新数据并进行刷新,您需要做的是在导致更改的事件上,再次进行http调用以重新加载数据 .

    我不能给你一个具体的例子,因为你没有提供任何代码,但我希望这有帮助 .

相关问题