我正在使用 DS.RestAdapter,修订版 12 来查询服务器以获取结果,但如果我不止一次查询,我很难在页面上显示结果。
我有一个带有与以下操作相关的搜索按钮的应用程序:
search: function() {
this.set('searchResults', App.Property.find());
}
然后在我的车把模板中,我有显示结果的代码,类似于:
{{#if searchResults.isLoaded}}
{{searchResults.length}}
{{/if}}
使用此配置,每次单击搜索按钮时,都会发出一个 JSON 请求,所有属性都会被检索并显示在屏幕上。searchResults 对象的类型为:DS.RecordArray,并且对该对象的引用似乎保持不变。即.. 如果我在模板上显示 {[searchResults}},我得到并且 ID 保持不变。
但是,一旦我将代码更改为基于参数进行查询,例如:
search: function() {
this.set('searchResults', App.Property.find({hello: 'world}));
}
然后,每次我单击搜索按钮时,都会使用正确的搜索参数对服务器进行查询,并且第一次这样做时,搜索结果会正确显示在页面上.....但是....当我再次单击搜索时,结果消失了。此外,searchResults 对象现在的类型为:DS.AdapterPopulatedRecordArray,如果我在屏幕上显示它,我可以看到每次单击搜索时 {{searchResults}} 都会获得一个新实例,但是 isLoaded 属性始终为 false,并且所以我的结果不显示。
我究竟做错了什么?谢谢你的帮助。