在Ember中链接到的新记录?

时间:2014-09-12 18:19:19

标签: ember.js

我想创建一条新记录,该记录应属于现有记录。

所以我的想法是使用link-to助手并将其传递给现有记录,并在相应的路径中创建一个新记录。

{{#link-to "create" this}}create record{{/link-to}}

...

App.CreateRoute = Ember.Route.extend({
    model: function (existing) {
        return this.store.createRecord('mymodel', {
            some    : '',
            data    : '',
            existing: existing
        });
    },

    deactivate: function () {
        this.currentModel.rollback();
    }
});

问题是,当我尝试将新记录的属性绑定到创建表单模板时,我获取现有记录的数据,而不是新创建的记录。

1 个答案:

答案 0 :(得分:2)

查看路由中model挂钩的文档。您遇到的问题是,当您使用model转换到路线时,link-to挂钩不会被调用。因为您已经将模型作为link-to的第二个参数,所以它不需要运行。

作为旁注,您不应该操纵路径中的数据,这是控制器的数据。路由应该只是用于设置控制器和模板。


我如何处理这种模式的例子:

App.CreateRoute = Ember.Route.extend({
    model: function() {
        return getExisting();
    }
});

App.CreateController = Ember.ObjectController.extend({
    some: '',
    data: '',
    actions: {
        createRecord: function() {
            this.store.createRecord('type', {
                some: this.get('some'),
                data: this.get('data')
            }).save();
        }
    }
});