2014-09-24 57 views
1

我正在用d3和ember構建一個可視化應用程序。從Emeber中的視圖訪問控制器

在模板中我已經聲明如下

{{view 'myview'}} 在那裏我定義的函數呈現圖表視圖。 我想要使用觀察屬性在控制器中的數據更改上觸發這些功能。 我知道所有視圖都與它們所在的控制器具有相同的上下文。

我嘗試this.controller.get('some_variable'); 輸出未定義。 如何實現它?

回答

1

你需要使用到搶遙控器,this.get('controller.some_variable')

+0

哎...我做了同樣的......看看這個jsbin我做了http://jsbin.com/fedak/3/edit .. 。如果我不使用this.get('controller.name')或this.get('controller.lname')並寫入像this.get('context')或任何隨機數字符串eg.alert('intialised')...'func'不會觸發。似乎你必須訪問init中的控制器才能使觀察者工作。 – asdw 2014-09-25 09:17:02

+0

是的,我之前見過這個問題,它與Ember沒有觀察那些從未在其範圍內訪問的項目有關。我並不看好你的觀點是什麼,你的最終目標是什麼,但即使只是在視圖中顯示這個項目,也會在它的範圍內觸發它。 http://jsbin.com/xojac/1/edit。雖然我個人認爲這個例子是一個bug。 – Kingpin2k 2014-09-25 14:26:27

+0

嘿...謝謝你的回覆......用例就是這樣。 我正在製作一個使用d3js和ember的可視化應用程序。這是我想使用[http://bl.ocks.org/mbostock/4063530]的一些附加功能。我的設計就是這樣。 1 - 來自後端的第一個查詢數據 2-當您在控制器中收到set屬性時。 3 - 該視圖具有類似renderChart的功能,該功能可以觀察屬性的任何更改,並在屬性更改時繪製圖表。 4 - 當用戶點擊任何內部氣泡...我想爲他們創建單獨的視圖...就像一個選項卡......所以用戶可以銷燬。 – asdw 2014-09-26 06:36:47

相關問題