Ember.js 如何从控制器内部操作获取父路由模型?

Ember.js 如何从控制器内部操作获取父路由模型?,ember.js,Ember.js,在我下面的“约会”路线中,我可以伸手去拿“家长日”的模型 但是,当我深入到新路线或编辑路线时,我如何(从操作处理程序内部)像在路线中那样抓住父“日”模型 App.AppointmentsEditController = Ember.Controller.extend({ actions: { updateAppointment: function(appointment) { var day = this.get('

在我下面的“约会”路线中,我可以伸手去拿“家长日”的模型

但是,当我深入到新路线或编辑路线时,我如何(从操作处理程序内部)像在路线中那样抓住父“日”模型

App.AppointmentsEditController = Ember.Controller.extend({                
    actions: {
        updateAppointment: function(appointment) {
            var day = this.get('??');
        }
    }
});
更新

最终的控制器代码如下所示

App.AppointmentsEditController = Ember.Controller.extend({       
    needs: 'day',         
    actions: {
        updateAppointment: function(appointment) {
            var day = this.get('controllers.day');
        }
    }
});

有一个简单的方法可以做到这一点。在
AppointmentsEditController
add中

needs: "day"
然后您可以通过this.get('controllers.day')访问
day
控制器

我总是这样用:

App.CommentsControler = Ember.Controller.extend({
    needs: "post",
    postBinding: "controllers.post",
    ...
    postName: function() {
        return this.post.name;
    }.property("post.name")
})  
var postController = this.get('controllers.post')
看看这篇文章


我希望这有助于:)

托兰-很抱歉将此作为一个额外的答案添加进来,我还不能发表评论-是的,它应该是免费的。您可以访问
控制器。在
操作
块中按如下方式发布

App.CommentsControler = Ember.Controller.extend({
    needs: "post",
    postBinding: "controllers.post",
    ...
    postName: function() {
        return this.post.name;
    }.property("post.name")
})  
var postController = this.get('controllers.post')

非常感谢。正如你所建议的那样(我只需要添加“需要日”行以获得100%)您好,我正在尝试这样做,但尝试获取家长约会,而不是约会编辑控制器中的日期。我尝试使用这个.get('controllers.appointment'),但我得到的是一个约会数组,而不是我正在编辑的特定约会。您能告诉我如何编辑预约吗?我可以使用上述方法获取控制器内所有约会的数组。我可以在路线内获取params.appointment\u id。但我不知道如何在上述任意一个*中获得约会本身。通过将数组保存到控制器属性,然后从路由中获取该属性并转到特定的param.appointment_id索引,可以修复此问题。似乎太复杂了…也许有更好的方法?为了在注释控制器中使用
day
控制器,您必须使用
this.get('controllers.day')
而不是
this.controllers.day
,否则它将无法识别控制器是什么。