[英]Accessing a controller's property from an extended object in Ember.js
我正在嘗試訪問和寫入/編輯擴展對象之外的單獨控制器上的屬性。 我試過使用this.get('controllers.photos');
並包括沒有運氣的控制器。 我也嘗試過this.controller('photos').get('uploadPhotos')
和許多晦澀的實現。 我在下面提供了我的代碼示例。
我有一個控制器,其屬性已uploadedPhotos
App.PhotosController = Ember.ArrayController.extend({
uploadedPhotos: [1,2,3,4,5]
}
然后,我有一個對象來處理我的上載並存儲圖像的ID。
App.Upload = Ember.Object.extend({
...some ajax call
success: function(file, response){
App.PhotosController.uploadedPhotos = response;
}
});
然后在稱為照片的視圖中創建它
App.PhotosView = Ember.View.extend({
didInsertElement: function(){
Upload.create();
}
});
您應該將上傳方法移到路由器中。
話雖如此,您可以在創建時將控制器注入到您的上傳對象中。
App.Upload = Em.Object.extend
success: (file, response) ->
@get('controller').set('uploadedPhotos', response)
App.PhotosView = Em.View.extend
didInsertElement:
controller = @get('controller')
App.Upload.create(controller: controller)
很抱歉使用coffeescript回答,輸入速度更快。
我假設Upload
對象僅處理照片的加載。 在那種情況下,是否有某些原因導致不能在PhotosController
上使用該功能(例如,在init上進行ajax調用)?
無論如何,如果您確實需要連接控制器(我想Upload需要擴展Em.Controller
而不是Em.Object
),請檢查以下內容:
控制器之間的依賴 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.