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

如何在OnSen和Angular 2中的当前页面关闭后刷新上一页

柳业
2023-03-14

我有一个产品列表页面,显示所有产品的列表。从这个页面有一个链接,可以在我添加新产品的新产品页面上打开。在DB中添加产品后,我想在当前产品新页面关闭后,在上一个产品列表页面中显示新添加的产品。我找不到任何解决方案来将新添加的产品传递回上一页或刷新它以重新加载产品列表。你能帮我做这个吗。

共有2个答案

顾英发
2023-03-14

NMG49-谢谢你的帮助。是的,这是Angular中两个组件之间对话的方式,但在OnSen中,我认为它没什么不同。如果我错了,请纠正我。

无论如何,我成功地实现了我想要的。这可能不是最佳做法或正确的做法,但我会坚持下去,直到找到更好的解决方案。

从我的产品新组件中,我将其替换为产品列表页,而不是仅仅弹出它。这样,新产品列表将使用新数据在堆栈顶部创建。但是,然后将有2个产品列表在堆栈中背靠背。刷新数据居前,旧数据居第二。现在从stack中删除排名第二的产品列表,您现在就好了。

下面是我的代码。

这导航。nativeElement。replacePage(ProductListPageComponent,{幻灯片:'left'});这导航。nativeElement。删除第(1)页;//1表示前一个ProductListPageComponent的索引,这在您的情况下会有所不同。

如果有更好的方法,请告诉我。

郏实
2023-03-14

刷新页面不需要特定角度的代码<代码>位置。重载()就可以了。

尽管如此,在这里进行页面刷新将是一个坏主意。不仅用户可能会有明显的延迟,而且页面重置会清除整个前端状态。这意味着通过angular实现的任何功能在页面重新加载时都会设置回默认值。因此,在使用客户端库(如angular或react)进行字体端开发时,我们希望不惜一切代价避免重新加载页面。

相反,您应该开发一个客户端解决方案,以便在用户将新产品提交到数据库后显示它。您已经在本地获得了所有信息(因为您刚刚提交!),您没有理由再次查询数据库以取回它。

let products = [];

// Pretend this is the product that we're adding
let product:Product = new Product('my favorite product');

sendToDb(product);
products.add(product);

假设产品如下所示:

class Product {
  name:string

  constructor(name:string) {
    this.name = name;
  }
}

然后在您看来:

<ul *ngFor="let products of product">
  <li>{{product.name}}</li>
</ul>

如果您这样构造代码,那么新产品将自动出现在UI中,您不必首先刷新屏幕。

 类似资料:
  • 成功登录验证后,我需要刷新主页。在这里,我使用下面的代码在成功登录后移动到下一页,并使用Firebase作为后端。 它只是打开主页而没有刷新。欢迎,如果有人能给我一个解决方案。

  • ap.popWindow(OPTION | data) 关闭当前页面。可直接传入一个对象作为 OPTION.data 参数。 OPTION 参数说明 参数 类型 必填 描述 data Object 否 传递的 data 对象将会被即将露出的页面通过 onResume 事件接收 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/al

  • popWindow popWindow用来关闭当前页面 使用方法 // 关闭当前打开的页面 AlipayJSBridge.call('popWindow'); 代码演示 关闭当前页面 <h1>关闭当前页面</h1> <a href="#" class="btn J_demo">执行</a> <script> function ready(callback) { // 如果jsbridge已经

  • 问题内容: 如何强制Web浏览器通过JavaScript硬刷新页面? 硬刷新意味着获取页面的新副本并刷新所有外部资源(图像,JavaScript,CSS等)。 问题答案: 尝试使用: 当此方法接收一个值作为参数时,它将导致该页面始终从服务器重新加载。如果为false或未指定,浏览器 可能会 从其缓存中重新加载页面。

  • 我有一个编辑页面,打开时显示: 当事件完成时,使用: 要显示新事件。。。除非页面未刷新以显示它。。。 查看了弹出后激发的页面事件。。。无 已触发一个要订阅的事件,但表示“无法读取未定义的属性‘fireEvent’”(在我使用this.fireEvent();)时表示“this”)因此,页面显然需要完全实例化 之前已经成功地使用了一个可观察的,但这次没有使用。。。。只是一个数组 已经看到可以在何处将

  • 在html中,当创建选项卡时,我可以将Paris选项卡设置为活动的(在html中用“style=”display:block;“硬编码)。因此,当页面加载时,活动选项卡(Paris)将显示。 问题 当我点击不同的标签(伦敦)并点击刷新,它再次显示巴黎。我如何才能点击刷新并显示当前活动的选项卡的信息?而不是将我带回定义的选项卡。也许javascript或jquery可以解决我的问题? 柱塞视图 示例