我有一个来自我的控制器的对象数组。我可以显示属性,但未设置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工作得很好。我甚至将其更改为计算属性。
但是链接并没有设置模型。这是一条嵌套的路由。
我正在获取/教室/未定义
奇怪的是,当我单击链接时,它会填充课堂模型和视图。
我的路线
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,所以我确信我忽略了一些微不足道的东西。
发布于 2013-06-02 16:11:09
您的课堂模型的主键是什么?它看起来像是classroom_id而不是id。
Ember.Model假设主键为id,它当前使用教室模型的id属性生成URL,该属性实际上是undefined,因为您的实际id是classroom_id。
您需要将数据更改为使用id作为主键(建议),或者自定义Ember-Model以使用不同的主键。
发布于 2013-08-16 17:22:53
<Msmapp.Classroom:ember403>是模型方法toString()的结果。我也有同样的问题,看起来像是linkTo没有查看路由参数名称。所以我的解决方案是
{{#linkTo 'classroom' classroom.classroom_id }}...https://stackoverflow.com/questions/16879972
复制相似问题