EmberArrayControllers:是否可以在控制器内定义模型/内容?

时间:2014-08-14 12:24:07

标签: javascript ember.js

更新了答案

我试图弄清楚如何在EmberArrayController中定义模型/内容(如果可能的话)。

已更新,以告诉您如何:

模板

<table class="table table-hover">
<thead>
    <tr>
        <th><a href="#" {{action "sortBy" "id"}} >Id</a></th>
        <th><a href="#" {{action "sortBy" "firstName"}} >First Name</a></th>
        <th><a href="#" {{action "sortBy" "lastName"}} >Last Name</a></th>
    </tr>
</thead>
<tbody>
    {{#each}}
        <tr>
            <td>#{{id}}</td>
            <td>{{firstName}}</td>
            <td>{{lastName}}</td>
        </tr>
    {{/each}}
</tbody>

// Controller.js

import Ember from 'ember';

export default Ember.ArrayController.extend({
  content: Ember.A([{id: 1, firstName: 'Amanda', lastName: 'Hugnkiss'},
                 {id: 2, firstName: 'Ben', lastName: 'Dover'},
                 {id: 3, firstName: 'Ms.', lastName: 'Cleo'}])
 ,
  actions: {
      sortBy: function(property) {
          //debugger;
          this.set('sortProperties', [property]);
     }
  }
});

// Route.js

import Ember from 'ember';

export default Ember.Route.extend({
  /*model: function(){
      return [
          {id: 1, firstName: 'Kris', lastName: 'Selden'},
          {id: 2, firstName: 'Luke', lastName: 'Melia'},
          {id: 3, firstName: 'Formerly Alex', lastName: 'Matchneer'}
      ];
  }*/
});

根据下面的一些评论,这个解决方案有效,但是,模型钩子似乎不直接作为EmberArrayController上的属性或行为直接支持,但是,内容对象属性是。

如果选择此解决方案,请记住这一点。

我将暂时接受这个答案。

1 个答案:

答案 0 :(得分:0)

如果你想设置内容(或模型),那么嗯,设置模型怎么样?

export default Ember.ArrayController.extend({

  model: null,

  init: function() {
    this._super();
    this.set('model', ['some', 'stuff']);
  }

});