在ember 2.0中,我無法將控制器封裝在my-component中。它顯示編譯錯誤。 聲明失敗:使用{{controller}}
或基於它的任何路徑已在Ember 2.0中刪除。聲明錯誤使用ember 2.0中刪除的{{controller}}。如何通過/將控制器對象傳遞給組件
{{my-component ctrl = controller}}
如何做到這一點?請指導我尋找替代解決方案。
在ember 2.0中,我無法將控制器封裝在my-component中。它顯示編譯錯誤。 聲明失敗:使用{{controller}}
或基於它的任何路徑已在Ember 2.0中刪除。聲明錯誤使用ember 2.0中刪除的{{controller}}。如何通過/將控制器對象傳遞給組件
{{my-component ctrl = controller}}
如何做到這一點?請指導我尋找替代解決方案。
如果您需要從控制器訪問數據,而不是使用{{controller}}
指令,則應該使用冒泡控制器或在模板聲明中傳遞控制器屬性的組件動作。
我想調用控制器方法transitionToRoute在我的嵌套組件中,而不是控制器的冒泡動作。這就是將控制器發送到組件的原因。 – kumkanillam
您應該在控制器中執行此操作,並使用來自組件的操作。這就是你在Ember做事的方式。 –
你不應該這樣做。您應該只傳入與組件相關的屬性,而不是整個控制器。
例如,如果您的組件需要在控制器中定義的屬性foo
和bar
,那麼您必須將它們添加到像{{my-component componentAttribute=foo anotherAttribute=bar}}
這樣的組件調用中。如果必須在某些嵌套組件中使用屬性,則必須傳遞最頂層組件中的屬性,然後將其傳遞給要使用它們的組件。
請參閱http://stackoverflow.com/questions/26103711/can-an-ember-component-observe-a-controller-property/26105073#26105073。 – 2016-02-13 21:36:10