【问题标题】:Ember Object not setting linkTo using ember-modelEmber 对象未设置 linkTo 使用 ember-model
【发布时间】:2013-06-02 05:09:45
【问题描述】:

我的控制器中有一组对象。我可以显示属性,但未设置 linkTo 对象

我也在使用 ember-model 而不是 ember-data

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,所以我确定它是微不足道的,我忽略了。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您的 Classroom 模型的主键是什么? 看起来是classroom_id 而不是id。

    Ember.Model 假定主键为id,它当前正在生成带有您教室模型的id 属性的URL,实际上是undefined,因为您的实际ID 是classroom_id

    您要么需要更改数据以使用 id 作为主键(建议),要么自定义 Ember-Model 以使用不同的主键。

    【讨论】:

    • 伙计..昨晚一定很累..我发誓我曾经这样做过。谢谢布拉德利。成功了!
    【解决方案2】:

    &lt;Msmapp.Classroom:ember403&gt; 是模型方法toString() 的结果。我遇到了同样的问题,看起来linkTo 没有查看 rout 参数名称。所以我的解决方案是

    {{#linkTo 'classroom' classroom.classroom_id }}...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2015-03-25
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多