Ember模型代理弃用混淆

时间:2015-03-25 14:18:31

标签: ember.js handlebars.js

我正在尝试在Ember 1.11中处理关于模板中对象代理的弃用消息,并且遇到了混乱。

在编辑路线上,例如,我在模型钩子中加载了一条记录。然后,使用setupController hoook,我正在设置其他集合变量以启用选择菜单。这引起了关于代理的弃用通知;我试图通过使用Ember.RSVP.hash作为模型设置模型钩子中的所有数据来解决这些问题。

我现在有一个问题,如果我直接加载页面,模型是正确的,但如果我从链接访问,模型是不正确的。我找到了类似问题的信息,这些问题导致我尝试使用setupController来设置模型,基于this.get('model'),希望能从路径的模型功能中获取模型,但这也行不通。正在调用setupController操作,但由于某些原因它似乎没有影响模板,这是我遇到障碍的地方。

show.hbs:

{{link-to model}}

edit.hbs - 如果直接页面加载则显示数据,如果从show link-to

访问则为空
{{model.foo.name}}

编辑路线:

renderTemplate: function (controller,model) {
    this.render('foo/form');
},

model: function (project) {
    return Ember.RSVP.hash({
        foo: this.store.find("foo", foo.foo_id),
        bar: this.store.find('bar')
    });
}

也尝试过编辑路线:

renderTemplate: function (controller,model) {
    this.render('foo/form');
},

model: function (project) {
    return Ember.RSVP.hash({
        foo: this.store.find("foo", foo.foo_id),
        bar: this.store.find('bar')
    });
},

setupController: function (controller, model) {
  controller.set('model', this.get('model');
}

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的方法,不确定是否有更好的" Ember方式" - 我看到因为link-to正在传递模型,所以假设不需要模型钩子;将model.id而不是model作为link-to参数传递会导致调用模型钩子。

{{link-to model.id}}

代替:

{{link-to model}}