Ember - 控制器的内容和模型属性有什么区别 [英] Ember - What's the difference between controller's content and model property
问题描述
在 ember 的官方指南中,它提供了两种设置控制器底层对象的方法.首先是设置模型属性:
App.SongsRoute = Ember.Route.extend({设置控制器:功能(控制器,播放列表){controller.set('model', playlist.get('songs'));}});
二是设置内容属性:
MyApp.listController = Ember.ArrayController.create();$.get('people.json', function(data) {MyApp.listController.set('content', data);});
这两个属性代表同一个东西吗?我应该使用哪种方式?
看来它们是一回事,
Ember.ControllerMixin = Ember.Mixin.create(Ember.ActionHandler, {....模型: Ember.computed.alias('content'),....
model
属性是 content
的别名.
还有,
https://github.com/emberjs/ember.js/blob/v1.3.0/packages/ember-routing/lib/system/route.js#L849
其中提到,
<块引用>默认情况下,`setupController`钩子设置`content`属性模型"的控制器.
更新自 v1.7.0 起已弃用,并将代码放在 mixin 中.https://github.com/emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller.js以及相关的弃用 mixin.https://github.com/emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller_content_model_alias_deprecation.js
In ember's official guide, it provides two ways to set the controller's underlying object. First is setting the model property:
App.SongsRoute = Ember.Route.extend({
setupController: function(controller, playlist) {
controller.set('model', playlist.get('songs'));
}
});
Second is setting the content property:
MyApp.listController = Ember.ArrayController.create();
$.get('people.json', function(data) {
MyApp.listController.set('content', data);
});
Are these two properties represent the same thing? Which way should i use?
It seems they are the same thing,
Ember.ControllerMixin = Ember.Mixin.create(Ember.ActionHandler, {
....
model: Ember.computed.alias('content'),
....
The model
property is an alias for content
.
Also,
https://github.com/emberjs/ember.js/blob/v1.3.0/packages/ember-routing/lib/system/route.js#L849
which mentions that,
By default, the `setupController` hook sets the `content` property of the controller to the `model`.
UPDATE Deprecated since v1.7.0 and the code placed in a mixin. https://github.com/emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller.js Along with the related deprecation mixin. https://github.com/emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller_content_model_alias_deprecation.js
这篇关于Ember - 控制器的内容和模型属性有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!