emberjs:制作多对多的协会

时间:2013-07-07 19:51:09

标签: ember.js ember-data

在用于编辑用户配置文件的大型表单中,我想要使用不具有自己路由的不同数据类型进行多对多关联。我想要基于文本的自动完成,并允许创建次要数据类型的新实例。一旦我创建了控制器并将其与模板的该部分相关联,这两个都很容易:

我将如何创建SomeOtherTypecontroller并将其实例化,并添加到应用程序中,即使没有与之关联的路由?当用户输入文本时我可以用它来查询api,所以我不需要在创建时填充它。

如何使用该控制器作为上下文呈现用户配置文件模板的一部分,以便操作正确映射到控制器并从中获取数据?

提前感谢!

1 个答案:

答案 0 :(得分:1)

我想您可以使用needs API轻松实现您尝试做的事情。

例如:

App.ExampleController = Ember.Controller.extend({
  needs: ['another'],
  anotherController: (function() {
    return this.controllerFor('another');
  }).property(),
  someObserver: (function() {
    return this.get('anotherController.someValue');
  }).observes('anotherController.someValue')
});

您可以执行以下操作,而不是使用.property().observer()进行绑定:

 App.ExampleController = Ember.Controller.extend({
   needs: ['another'],
   anotherControllerBinding: 'controllers.another'
 });

请注意,在示例中,AnotherController不需要对应任何路由。 有关needs API的详细信息,请查看here

希望它有所帮助。