显示Ember Data的结果

时间:2013-05-24 16:14:36

标签: ember.js

我正在使用DS.RestAdapter修订版12来查询服务器的结果,但如果我多次查询,我很难在页面上显示结果。

我的应用程序的搜索按钮与以下操作相关联:

search: function() {
  this.set('searchResults', App.Property.find());
}

然后在我的车把模板中,我有显示结果的代码,类似于:

{{#if searchResults.isLoaded}}
  {{searchResults.length}}
{{/if}}

使用此配置,每次单击搜索按钮时,都会发出JSON请求,所有属性都将被检索并显示在屏幕上。 searchResults对象的类型为:DS.RecordArray,对象的引用似乎保持不变。 ie ..如果我在模板上显示{[searchResults}},我会得到并且ID保持不变。

但是,只要我将代码更改为基于参数进行查询,例如:

search: function() {
  this.set('searchResults', App.Property.find({hello: 'world}));
}

然后,每次单击搜索按钮时,都会使用正确的搜索参数对服务器进行查询,第一次执行此操作时,搜索结果会在页面上正确显示.....但.. ..一旦我再次点击搜索,结果就会消失。此外,searchResults对象现在是类型:DS.AdapterPopulatedRecordArray,如果我在屏幕上显示它,我可以看到{{searchResults}}每次单击搜索时都会获得一个新实例,但isLoaded属性始终为false,并且所以我的结果不显示。

我做错了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

如果有人经历过这样的事情,那么问题就出现了,因为我已经覆盖了我正在加载的对象上的didLoad函数。在didLoad函数中,我正在检查一个关联是否为空,如果是,我在浏览器本地创建了一个新的分配实例。

这似乎弄乱了我正在加载的整个对象数组的'isLoaded'状态。