2014-04-04 46 views
0

好吧,我試圖獲取隨機控制器(不是我的模板的默認控制器)上的計算屬性,以將此屬性傳遞到隨機模板上的組件。有一些關於irc的幫助,我被指出:「http://emberjs.com/guides/controllers/dependencies-between-controllers/」,並意識到我的問題更多的是控制器依賴問題而不是組件問題,這有所幫助,但我仍然有問題。正確的方法將控制器傳遞給組件

所以我胡說模板的默認控制器(BlahController)對我用的是「需求」鉤來獲得訪問FooBarController這樣的:

needs: 'foo_bar' 

並在同嗒嗒模板在那裏我打電話給我的組件,我得到的FooBarController的財產像這樣:

{{my-widget someProperty=controllers.foo_bar.someProperty}} 

而我的組件只是顯示像這樣的屬性:

{{someProperty}} 

我試圖訪問的屬性(someProperty)是一個具有它自己的依賴項的計算屬性。我得到一個錯誤,計算屬性上的依賴屬性似乎不可用?

回答

0

Ember組件僅在需要完全隔離的視圖才能構建可重用的UI元素時纔會使用。因此,當您將組件作爲參數調用時,組件所需的所有內容都必須傳入。組件不應該綁定到控制器。相反,當它需要傳播事件時,它應該使用'sendAction'API來控制它被調用的模板。你真正需要的是一個視圖。

+0

嗨Hrishi,我剛剛編輯我原來的問題。我設法靠得更近,但後來跑進另一堵牆。但是,謝謝你的幫助。我想我似乎很奇怪,我不能有一個組件正在吐出一些控制器的計算屬性?這似乎是一個合理的事情想要做一個組件。我還認爲,在實踐中,組件更適合用於視圖,因爲它們使得模板中的內容更加簡潔......但回到我必須去的視角,我想。 –

+0

剛剛將字符串「controllers.whatever」返回給我的模板。如果沒有引號,肯定會訪問控制器上的計算屬性,因爲我得到:Uncaught TypeError:在此情況下,無法讀取未定義的屬性'height'height是我之後計算屬性的屬性。我敢說這看起來像一個錯誤。 –

+0

對不起我的錯誤,看到這個:http://emberjs.com/guides/components/passing-properties-to-a-component/,似乎你應該通過屬性{{my-widget someProperty = controller。 controllers.foo_bar.someProperty}} – Hrishi

相關問題