控制器依赖项在Ember.js中应该如何工作

控制器依赖项在Ember.js中应该如何工作,ember.js,Ember.js,“我的简单水疗”在一页中包含三个部分: 照片列表 帧列表 相框中的最终产品列表 用户选择一张照片和一个相框来形成一个新产品。也可以添加新照片和相框 我认为控制器应该是这样的: App.ProductsController = Ember.Controller.extend({ needs: ['photos', 'frames'], photosBinding: 'photos', framesBinding: 'frame', actions: {

“我的简单水疗”在一页中包含三个部分:

照片列表 帧列表 相框中的最终产品列表 用户选择一张照片和一个相框来形成一个新产品。也可以添加新照片和相框

我认为控制器应该是这样的:

App.ProductsController = Ember.Controller.extend({
    needs: ['photos', 'frames'],
    photosBinding: 'photos',
    framesBinding: 'frame',
    actions: {
        newProduct: function () { ... }
    },
    ....
});

App.PhotosController = Ember.Controller.extend({ ... });
App.FramesController = Ember.Controller.extend({ ... });
因为我对灰烬很陌生,我不知道我应该如何解决它的其余部分

照片和相框需要自己的路线吗?如果是,我应该如何防止用户修改URL并显示不应显示的内容。如果否,控制器如何连接到其模型? 我希望新照片和帧的创建由各自的控制器处理,我如何才能做到这一点?
照片和相框听起来都像是应用程序的资源 这两方面你都需要资源

App.Router.map(){
 this.resource('photos');  //for photo list
 this.resource('frames'); // for frames list
}
等等…请通过灰烬网站上的灰烬文档,你将很容易做到这一点


有关更多详细信息,请参阅madhatted的详细文章

谢谢您的回复。非常有用。还有几个问题:如果我定义这些资源,是否意味着将有/photos和/frames的URL?我能排除它们吗?指南中似乎没有提到控制器之间的事件传播,您认为仅阅读指南就足以开始学习Ember吗?我发现指南内容非常丰富,您必须仔细阅读。如果你找到了正确的答案,你可以使用这个网站的accept anwer功能打勾…这里是对emberjs的进一步深入介绍,我建议你仔细阅读