最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Ember - What's the difference between controller's content and model property - Stack Overflow

programmeradmin2浏览0评论

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?

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?

Share Improve this question asked Jan 9, 2014 at 11:17 merlinmerlin 341 gold badge15 silver badges23 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

It seems they are the same thing,

https://github./emberjs/ember.js/blob/v1.3.0/packages/ember-runtime/lib/controllers/controller.js#L44

Ember.ControllerMixin = Ember.Mixin.create(Ember.ActionHandler, {
....
model: Ember.puted.alias('content'),
....

The model property is an alias for content.

Also,

https://github./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./emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller.js Along with the related deprecation mixin. https://github./emberjs/ember.js/blob/v2.12.0/packages/ember-runtime/lib/mixins/controller_content_model_alias_deprecation.js

In the documentation - http://emberjs./api/classes/Ember.Controller.html#property_model - it clearly states that when retrieving or modifying a controller's model, the model property should be used instead of the content property.

发布评论

评论列表(0)

  1. 暂无评论