我的控制器中有一组对象。我可以显示属性但是没有设置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工作正常。我甚至把它改成了计算属性。
但链接未设置模型。它是一个嵌套的路线。
im getting / classesrooms / undefined
奇怪的是,当我点击链接时,它会填充教室模型和视图。
我的路线
this.resource('classrooms', function() {
this.resource('classroom', {path: ':classroom_id'}, function() {
this.route('new_student');
});
this.route('new');
});
注意:如果我将:classroom_id更改为just:id我会回复这样的内容
/classrooms/<Msmapp.Classroom:ember403>
我刚从ember-data切换到ember-model,所以我确定它可以忽视它的微不足道的东西。
答案 0 :(得分:1)
课堂型号的主键是什么?
它看起来像classroom_id
而不是id
。
Ember.Model假定主键为id
,它当前正在生成包含教室模型id
属性的网址,实际上是undefined
,因为您的实际ID为{ {1}}
您需要更改数据以使用classroom_id
作为主键(建议),或者自定义Ember-Model以使用其他主键。
答案 1 :(得分:0)
<Msmapp.Classroom:ember403>
是模型方法toString()
的结果。我有同样的问题,看起来像linkTo
没有查看路径参数名称。所以我的解决方案是
{{#linkTo 'classroom' classroom.classroom_id }}...