簡體   English   中英

從Ember.js中的擴展對象訪問控制器的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM