0

コントローラーからのオブジェクトの配列があります。プロパティは表示できますが、linkTo オブジェクトが設定されていません

私はまた、ember-dataではなくember-modelを使用しています

Msmapp.ClassroomsRoute = Ember.Route.extend({
  model: function() {
    return Msmapp.Classroom.findAll(); //Ember.Model
  }
});


Msmapp.Classroom = Msmapp.Model.extend({
  classroom_id: Ember.attr('number'),
  classroom_name: Ember.attr('string'),
  teacher_id: Ember.attr('number'),
  grade: Ember.attr('number'),
  students: Ember.attr('string'),
  assignments: Ember.attr('string'),

  classroomStudents: function () {
    var studentObjects = []
    this.get('students').forEach(function(student) {
      studentObjects.push(Msmapp.Student.create(student));
    });
    return studentObjects;
  }.property('students')

});

Msmapp.Classroom.reopenClass({
  collectionKey: "classrooms",
  url: '/classrooms'
});


{{#each classroom in controller }}
  <li class="item">
    {{#linkTo 'classroom' classroom }}{{ classroom.classroom_name }}{{/linkTo}}
  </li>
{{/each}}

classroom.classroom_name は問題なく動作します。私はそれを計算されたプロパティに変更しました。

しかし、リンクはモデルを設定していません。ネストされたルートです。

私は /classrooms/undefined を取得しています

奇妙なことに、リンクをクリックすると、教室のモデルとビューが表示されます。

私のルート

this.resource('classrooms', function() {
    this.resource('classroom', {path: ':classroom_id'}, function() {
        this.route('new_student');
    });
    this.route('new');
});

注: :classroom_id を :id だけに変更すると、次のようなものが返されます

/classrooms/<Msmapp.Classroom:ember403>

私はちょうど ember-data から ember-model に切り替えたので、見落としている些細なことだと確信しています。

4

2 に答える 2