我只是从 ember 开始,如果这个问题看起来很愚蠢,请原谅我。我有一个 ArrayController ,其中包含具有属性名称的人员列表。我正在使用以下把手调用为内容数组中的每个名称创建文本字段:
{{#each App.Controller}}
{{view Em.TextField placeholder="Name" valueBinding="name" }}
{{/each}}
这按预期工作。我首先用几个名称初始化我的内容数组,然后为每个条目显示一个文本字段。但是,当我使用 pushObject 将人员添加到内容数组时,不会添加新的文本字段!使用控制台我可以看到人们被添加到内容中,视图根本没有改变。更奇怪的是,如果我按以下方式添加人员,一切都会按预期工作:
this.pushObject(newPerson);
var copy = this.get('content');
this.set('content',[]);
this.set('content',copy);
当我以这种方式添加人员时,我会为新添加的人员获得另一个文本字段。ember 文档说 pushObject() 是 KVO 兼容的,这是否意味着它应该更新依赖项并且视图应该更新?我是否需要调用 rerender() 或其他一些函数来使 pushObject() 更新视图,还是每次我想更新视图时都必须复制数组?谢谢!