我正在尝试从扩展对象访问和编辑/编辑单独控制器上的属性。我已经尝试过使用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;
}
});
然后在名为photos的视图中创建
App.PhotosView = Ember.View.extend({
didInsertElement: function(){
Upload.create();
}
});
答案 0 :(得分:1)
您应该将上传方法移到路由器中。
话虽如此,您可以在创建时将控制器注入上传对象。
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感到抱歉,打字更快。
答案 1 :(得分:0)
我认为Upload
对象只是处理照片的加载。在这种情况下,有没有理由在PhotosController
上没有正确的功能(例如在init上进行ajax调用)?
无论如何,如果你真的需要连接控制器(我想上传需要扩展Em.Controller
而不是Em.Object
),请检查: