在用于编辑用户配置文件的大型表单中,我想要使用不具有自己路由的不同数据类型进行多对多关联。我想要基于文本的自动完成,并允许创建次要数据类型的新实例。一旦我创建了控制器并将其与模板的该部分相关联,这两个都很容易:
我将如何创建SomeOtherTypecontroller并将其实例化,并添加到应用程序中,即使没有与之关联的路由?当用户输入文本时我可以用它来查询api,所以我不需要在创建时填充它。
如何使用该控制器作为上下文呈现用户配置文件模板的一部分,以便操作正确映射到控制器并从中获取数据?
提前感谢!
答案 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。
希望它有所帮助。