📜  当新项目添加到数组中时,它不会刷新 ember 中的列表 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:09:51.289000             🧑  作者: Mango

当新项目添加到数组中时,它不会刷新 Ember 中的列表 - TypeScript

在 Ember 中,当数组中的项目被修改时,视图不会自动刷新。这就是为什么您需要使用特殊的方法来告诉视图何时更新。这可以通过以下步骤来完成:

  1. 在组件或控制器中定义数据模型。
import Component from '@ember/component';
import { A } from '@ember/array';

export default class MyComponent extends Component {
  projects = A();
}
  1. 在模板中使用列表来显示数据。
{{#each projects as |project|}}
  <div>{{project.name}}</div>
{{/each}}
  1. 当您添加一个新项目时,使用 pushObject 方法将其添加到数组中。
this.projects.pushObject({ name: 'New Project' });
  1. 最后,您需要通过调用 notifyPropertyChange 方法来通知视图数据已被修改,并需重新渲染视图。
this.notifyPropertyChange('projects');

这样,当您添加一个新项目时,它将自动出现在列表中。

请注意,它只更新了一个指定的属性,而不是整个对象。这是 Ember 框架的一种优化方法,它仅重新渲染视图所需的部分。

希望这篇文章能够帮助您解决问题,如果您有任何问题或疑问,请随时在评论中提出。