2013-07-07 41 views
1

在編輯用戶配置文件的大型表單中,我想用不同的數據類型進行多對多關聯,但不包含自己的路由。我想都基於文本自動完成,並允許創建次要數據類型的新實例。一旦我創建了控制器並與該模板的該部分相關聯,這兩種方法都很簡單:emberjs:製作多對多關聯

如何創建SomeOtherTypecontroller並將其實例化並添加到應用程序中,即使沒有與其關聯的路由?當用戶輸入文本時,我可以使用它來查詢api,所以我不需要在創建時填充它。

如何使用該控制器作爲上下文呈現用戶配置文件模板的一部分,以便操作正確映射到控制器並從中獲取數據?

在此先感謝!

回答

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不需要符合任何路線。請致電here

希望它有幫助。

+0

據我所知,這是正確的 - 現在在ember-data中存在一個bug,通過這種方式加載hasMany關係不會觸發改變事件,所以我最終需要加載邊上的項目並將它們綁定到控制器 – gone