什么`this._super(控制器,模型)`在Ember路由器中意味着什么?

dat*_*ser 5 javascript ember.js

我在EmberJS代码和讨论{没有提供参考}中看到了以下内容:

route.js

setupController: function (controller, model) {
    this._super(controller,model);
    // More code
},
Run Code Online (Sandbox Code Playgroud)

问题

this._super(controller,model);在这里做什么的呼吁是什么?

我什么时候需要使用这种类型的电话?

只是想在这里学习,因为我的鼻子从Ember学习曲线流血.

ble*_*enm 5

正如@RyanHirsch所说,this._super调用该方法的父实现.

在这种情况下setupController,调用this._super(controller,model)会将控制器的'model'属性设置为传入的模型.这是默认实现.因此,在正常情况下,我们不需要实现此方法.

现在,当我们想要向控制器设置其他数据时,我们通常会覆盖它.在这些情况下,我们需要默认行为和自定义内容.所以我们称之为_super方法.然后做我们的事情.

setupController: function (controller, model) {
  // Call _super for default behavior
  this._super(controller, model);

  // Implement your custom setup after
  controller.set('showingPhotos', true);
}
Run Code Online (Sandbox Code Playgroud)

这是setupController的默认实现.