App.Model.find()和App.Model.find({params})的结果不同

时间:2013-07-26 21:09:19

标签: ember.js ember-data

我正在尝试创建一个todo-app(原创,对吗?)并且如果使用find({some parameters})而不是find(),则会遇到ember不显示我新创建的对象的问题。

问题似乎是App.Model.find()返回的结果与App.Model.find({checked:false})不同。

我创建了TasksRoute并将模型数据定义为App.Task.find()。 使用App.Task.find()时,我可以通过键入:

来创建新任务
var task = App.Task.createRecord({name: "taskName"});
task.get("store").commit();

列表已更新,视图显示新创建的任务。

但是,如果我改为使用App.Model.find({}),或者使用任何其他哈希,然后创建任务就不会发生任何事情。

这是html:

<script type="text/x-handlebars" data-template-name="application">
  {{#linkTo "tasks"}}Tasks{{/linkTo}}
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="tasks">
  {{#each controller}}
    {{name}}<br />
  {{/each}}
</script>

使用Javascript:

App = Em.Application.create();

App.Store = DS.Store.extend({
    revision: 12,
    adapter: DS.RESTAdapter.create({url: "http://localhost/backend/"})
});

App.Task = DS.Model.extend({
    name: DS.attr('string')
})

App.TasksRoute = Ember.Route.extend({
    model: function() {
        return App.Task.find();
    }
});

App.Router.map(function(){
    this.route('tasks');
});

App.TasksController = Em.ArrayController.extend({});

我不想使用find()的原因是我希望能够指定我的查询。例如,我希望能够通过为find()提供哈希来检索所有检查的任务。

(我尝试创建一个jsFiddle,但没有设法让它与灯具配合使用)

这是一个错误还是我做错了什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可能希望使用filterProperty('checked', false)代替find({params})