2013-06-02 61 views
0

我有我的控制器對象的數組。我可以顯示其屬性,但linkTo對象沒有被設置Ember對象未設置linkTo使用餘燼模型

林還使用燼模型不燼數據

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只是:ID我回來是這樣的

/classrooms/<Msmapp.Classroom:ember403> 

我剛從燼數據轉換成燼模型等等我確定它的東西微不足道的俯瞰。

回答

1

教室模型的主鍵是什麼? 它看起來像是classroom_id而不是id

Ember.Model假定的id一個主鍵,它是目前生成的網址與你的課堂模式,這實際上是undefined,因爲你的實際id爲classroom_id

您可能需要更改數據的id屬性使用id作爲主鍵(建議),或者自定義Ember-Model以使用不同的主鍵。

+0

男人..一定是累了昨晚..我發誓我做到了這一點。謝謝布拉德利。這工作! – CoderStash

0

<Msmapp.Classroom:ember403>是模型方法toString()的結果。我有同樣的問題,看起來像linkTo不看在路由參數名稱。所以我的解決方案是

{{#linkTo 'classroom' classroom.classroom_id }}... 
相關問題