2014-01-31 40 views
0
App.PhotoUpload = Ember.TextField.extend 
    type: "file" 

    change: (evt) -> 
     # @get('controller') gives - App.PhotoUpload 
     @get('controller').send('uploadImage') 

工作在上面的代碼,如果我調試和檢查@get('controller').constructor返回App.PhotoUpload,這是不正確的,它不叫uploadImage作用,這是在我的路線。獲取控制器無法與Ember.textfield

當我將Ember.TextField更改爲Ember.View時,@get('controller')按預期工作並調用uploadImage操作。但是,正如我做圖像上傳自動更新服務器,我需要堅持使用TextField。

我有這些問題: 1.什麼是從Emberview訪問另一個控制器的方法? 2.如何從Ember.TextField訪問權限控制器?

回答

1

這裏的問題是,包含的輸入字段最近被修改爲extend Ember.Component而不是Ember.View。組件和視圖之間的主要區別之一是組件is itself的控制器屬性。老實說,我不完全確定爲什麼會發生這種變化。話雖如此,仍然可以從使用targetObject property定義文本字段的上下文訪問控制器。

更新:

我看着這了一點,事實證明,並非所有輸入字段都變成組件,只有TextField和文本區域。看起來成爲組件的主要原因是公開some helpful action handlers,因爲組件提供了這種能力。

+0

謝謝你。 targetObject屬性就是我一直在尋找的東西。 – Abhaya