我正在尝试创建一个待办事项应用程序(原始的,对吗?),如果使用 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,但没有设法让它与固定装置一起工作)
这是一个错误还是我做错了什么?
提前致谢